Имеется следующая структура системы: Классы, а них находятся задания.
Цель теста проверить наличие настроек внутри задания.
Считается ли правильным переходить на задание по прямому url?
Таким образом мы экономим время на прохождения некоторых шагов. Правильным путем будет, конечно же, прохождение по "шагам", но цель - проверить настройки.
Проверка "по шагам" проверяется в другом тесте.
Прохождение по прямому URL - плохо. Меняется логика работы приложения - придется переделывать тест. Более правильным решением будет следующее:
ОтветитьУдалить1. В background создать объекты, которые нужно проверить. Т.е. класс и привязанные к нему задания.
2. Сам тест будет выглядеть приблизительно так:
Scenario: Check settings
Given I am on the %taskname% settings page
Then I should see ...
3. А реализация шага "Given I am on the %taskname% settings page" (приблизительно, опять таки):
Given I am on the ([^"]*) settings page$/ do |task|
task_settings_form_path(model!(task))
end
здесь task_settings_form_path это подходящий scope из файла routes.rb приложения.
По хорошему для таких целей стоит написать отдельный paths.rb, где с помощью case/when описать все урлы приложения, нужные в тестах. Примерчик - http://makandracards.com/makandra/6387-auto-generate-cucumber-navigation-paths
Ну и в целом, мне кажется это отходит от логики повторения действий пользователя.
ОтветитьУдалитьЯ думаю, небольшой процент пользователей производят навигацию путем вбития четкого урла
Я думаю, что вопрос был не сколько в логике повторения действий, сколько в самом факте использовать жестко заданную ссылку в теле теста. Что касается вбивания четкого урла, то ситуация такая может быть - начинаешь набирать адрес сайта, а заботливый браузер подсказывает список посещенных страниц, и ты выбираешь нужную.
УдалитьЦель теста - проверить наличие настроек и что они кликабельны. А как пользователь попал на эту страницу, по большому счету, все равно
УдалитьЭтот комментарий был удален автором.
ОтветитьУдалить