Набор тестов для синтаксического анализа URL


person Alexander Gladysh    schedule 06.04.2009    source источник


Ответы (3)


Библиотека Addressable Ruby содержит очень полный Spec Suite (618 примеров с 800 ожиданиями в 123 группах примеров, что составляет более 3700 SLOC), который охватывает большую часть RfC3986. Код находится здесь. Я не уверен, как напрямую вы можете запустить это в своей библиотеке, может быть, вы можете заставить его работать без изменений, написав простую совместимую с API Ruby-оболочку для своей библиотеки? В противном случае Spec действительно хорошо структурирован, поэтому вы сможете продвинуться довольно далеко с помощью некоторых простых рефакторингов метода переименования и Regexp-fu.

person Jörg W Mittag    schedule 06.04.2009

Вот небольшой документ для RFC 2396, который я думаю, пришло из здесь, если это поможет. Также это.

person MarkusQ    schedule 06.04.2009

Хм... анализ URL-адресов в наши дни практически решен. В большинстве основных языков есть класс или функция URI, которые выполняют весь необходимый вам анализ. Вы уверены, что вам действительно нужно свернуть свой собственный?

Вот несколько ссылок на модули URI на популярных в наши дни языках:

Поскольку вы тестируете существующий код, вы можете использовать эти классы/функции в качестве ожидаемых значений для этого кода. Просто создайте кучу различных типов действительных и недействительных URI и отправляйтесь в город.

person Randolpho    schedule 06.04.2009
comment
Спасибо за ссылки. У меня есть устаревший код, который я не готов выбросить (пока), и он не на одном из перечисленных выше языков. Мне нужно проверить, правильно ли работает часть этого кода, анализирующая URL-адреса. - person Alexander Gladysh; 07.04.2009
comment
Ну, на самом деле библиотека Addressable::URI Ruby была специально создана, потому что библиотека URI в Ruby stdlib не соответствует RfC3986 (и после нескольких лет жалоб и сообщений об ошибках все еще не соответствует). Так что будьте осторожны с термином решенная проблема. Помните: все смеялись над... - person Jörg W Mittag; 07.04.2009
comment
... Google, потому что веб-поиск тоже решил проблему. Я имею в виду, почему кому-то вообще захочется использовать что-либо, кроме AltaVista? - person Jörg W Mittag; 07.04.2009
comment
Использование PHP немного неудобно и не обрабатывает довольно много случаев, например, URL-адреса с анонимными (относительными) протоколами. - person Synchro; 03.09.2012