Функциональное испытание направляющих произвольных или пользовательских URL

Я думаю, когда Вы начинаете думать об интеграционных тестах, Вы говорите больше пересечения физических уровней, а не логических слоев.

, Например, если Ваши тесты интересуются генерацией содержания, это - модульный тест: если Ваш тест интересуется просто записью в диск, это - все еще модульный тест, но как только Вы тестируете и на ввод-вывод И НА содержание файла, то у Вас есть самостоятельно интеграционный тест. При тестировании вывода функции в сервисе это - модульный тест, но как только Вы делаете служебный вызов и видите, является ли функциональным результатом то же, то это - интеграционный тест.

Технически Вы не можете модульный тест just-one-class так или иначе. Что, если Ваш класс составлен с несколькими другими классами? Это автоматически делает его интеграционным тестом? Я не думаю так.

8
задан Craig Walker 10 June 2016 в 18:40
поделиться

2 ответа

Используйте assert_routing для тестирования маршрутов:

assert_routing("/photos/10/style", :controller => "photos", :action => "show", :id => "10", :style => [])

assert_routing("/photos/10/style/cool", :controller => "photos", :action => "show", :id => "10", :style => ["cool"])

assert_routing("/photos/10/style/cool/and/awesome", :controller => "photos", :action => "show", :id => "10", :style => ["cool", "and", "awesome"])

Затем в интеграционном тесте вы можете выполнить:

test "get photos" do
   get "/photos/10/style/cool"
   assert_response :success
end
5
ответ дан 5 December 2019 в 22:19
поделиться

Из документации Rails API:

Подстановка маршрутов

Указание * [строка] как часть такое правило:

 map.connect '* path',: controller => 'blog',: action => 'unrecognized?'

переместит все оставшиеся части маршрут, который не был распознан ранее. Глобальные значения находятся в params [: path] как массив путей сегменты.

Похоже, вам нужно передать аргументы : path , чтобы правильно протестировать действие.

1
ответ дан 5 December 2019 в 22:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: