Тест E2E selenium с использованием xunit: как настроить одно утверждение для каждого теста

#selenium #xunit.net

#селен #xunit.net

Вопрос:

У меня есть тест E2E selenium / C #, который начинается со страницы входа в систему, переходит на несколько других страниц и заканчивается при выходе из системы. Кстати, это один из многих тестов E2E. Ниже приведены типичные шаги в тестовом классе:

  • Перейдите на страницу входа в систему
  • Подтвердите правильную страницу
  • Войдите в систему с заданными учетными данными
  • Подтвердите, что открытая страница — это панель мониторинга
  • Нажмите на ссылку
  • Подтвердите, что новая страница является правильной страницей . . .
  • Выход

Кто-то сказал, что для каждого теста должно быть только одно утверждение. Поэтому я должен разбить их таким образом, чтобы иметь только одно утверждение для каждого теста, а также только один объект браузера создается и передается среди тестов.

Как это решить? Или необходимо прерывать одно утверждение для каждого теста в классе?

У меня есть следующие классы:

  • Базовый класс, который имеет конструктор, получающий тип браузера, для создания драйвера и распоряжения закрыть все браузеры
  • Класс LoginPage, который обрабатывает связанные действия, такие как переход по URL и вход в систему. Верните результирующую страницу панели мониторинга в тестовый класс
  • Другие подобные классы, представляющие разные страницы.

Комментарии:

1. Это очень вопрос мнения! Вам нужно будет попросить вашего таинственного кого -то объяснить причины, лежащие в основе их мнения, и как, по их мнению, это должно быть решено.

2. Для утверждений нет правил.. Это обычный подход к использованию утверждений после каждого шага — подумайте о обычном тестовом примере: когда я делаю …. — я должен se … . Таким образом, каждый раз, когда вы выполняете действие, вы убедитесь, что все так, как ожидалось.

3. извините за не по теме, я чувствую, что здесь хорошее место, чтобы сказать то, что я хотел сказать последние 10 лет: сообщество .NET очень религиозно, однако, используя c #, мы просто описываем обычный конечный автомат, целью которого является просто уменьшить локальную энтропию, нагревая вселенную как можно меньше. В кодировании действительно 0 магии, постарайтесь понять вашего собеседника, возможно, его случай специфичен или он выдвигает эту идею по ошибке.