Какие тесты я должен использовать для модульного тестирования парсера CSV?
У меня есть простой синтаксический анализатор csv в C #, и я хочу быть уверенным, что у меня есть хороший охват модульных тестов для всех распространенных (и необычных) краевых случаев. Какие тесты я должен использовать для выявления потенциальных проблем и граничных случаев?
Ответы:
Я только что нашел https://github.com/maxogden/csv-spectrum :
источник
Вот несколько граничных случаев, которые вы должны были продумать и подготовить для них.
,foo,
,"foo",
,"foo\nbar"
,"foo,bar"
,"foo""bar"
,,
должно быть нулевым и,"",
должно давать пустую строку.источник
Не существует формальной спецификации для файлов CSV. Однако взгляните на RFC 4180 - Common Format и MIME-типы для CSV-файлов (в частности, раздел 2), в котором документирован формат, которому следует большинство реализаций.
Кажется довольно простым начать создавать тестовые примеры из списка в разделе 2, а именно:
источник
Данные переписи населения США доступны в формате CSV
Я работал над этим некоторое время. Это, конечно, достаточно странно, чтобы быть хорошим тестом, и есть тонны и тонны этого.
источник
Проверьте этот каталог и посмотрите код в файлах * .t .:
http://cpansearch.perl.org/src/MAKAMAKA/Text-CSV-1.32/t/
(Номер версии -1.32 может со временем измениться, поэтому ссылка может стать «мертвой». Увеличьте номер версии самостоятельно методом проб и ошибок, либо перейдите в родительский каталог или нажмите здесь
https://metacpan.org/pod/Text::CSV
и нажмите через «Обзор» к исходному коду последней версии)
Text :: CSV_XS - это зрелый Perl-модуль для анализа CSV-файлов. Файлы * .t написаны на Perl 5, они содержат множество тестовых примеров для самотестирования модуля, они должны быть выполнены во время установки модуля.
источник