12/18/2013

Переход по прямой ссылке в автоматических тестах. Хорошо или плохо?


Имеется следующая структура системы: Классы, а них находятся задания.
Цель теста проверить наличие настроек внутри задания.
Считается ли правильным переходить на задание по прямому url?
Таким образом мы экономим время на прохождения некоторых шагов. Правильным путем будет, конечно же, прохождение по "шагам", но цель - проверить настройки.
Проверка "по шагам" проверяется в другом тесте.

5 комментариев:

  1. Прохождение по прямому 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

    ОтветитьУдалить
  2. Ну и в целом, мне кажется это отходит от логики повторения действий пользователя.
    Я думаю, небольшой процент пользователей производят навигацию путем вбития четкого урла

    ОтветитьУдалить
    Ответы
    1. Я думаю, что вопрос был не сколько в логике повторения действий, сколько в самом факте использовать жестко заданную ссылку в теле теста. Что касается вбивания четкого урла, то ситуация такая может быть - начинаешь набирать адрес сайта, а заботливый браузер подсказывает список посещенных страниц, и ты выбираешь нужную.

      Удалить
    2. Цель теста - проверить наличие настроек и что они кликабельны. А как пользователь попал на эту страницу, по большому счету, все равно

      Удалить
  3. Этот комментарий был удален автором.

    ОтветитьУдалить