Я предполагаю, что вы проводите интеграционное тестирование, поэтому имеет смысл получить доступ к БД.
Selenium автоматизирует тестирование пользовательского интерфейса - я не буду использовать его для настройки ваших данных, потому что тогда изменения пользовательского интерфейса будут нарушать тесты, которые действительно должны полагаться только на исходное действительное состояние заказа.
Некоторые шаги могут потребоваться для выполнения вашего кода - например, войти в систему ... но на самом деле они не являются тем, что вы тестируете в этом тесте. Вы рассматривали возможность использования тега Background для их настройки?
Feature: Order Details Page
As a customer ...
I want to ...
So that ...
Background:
#set up user authentication status
Given I am logged in
#set up order status to be consistent with this page
And I have an order ready for submission
Scenario: I can submit my order
...etc...
Scenario: I can cancel my order
...etc...
С этим шаблоном комплекс «Я на странице заказов» разбит на несколько фоновых шагов, которые устанавливают допустимое состояние, и теперь файл функции может ссылаться на несколько действий на этой странице без дублирования.
Я думаю, как вы настраиваете данные для ваших интеграционных тестов, зависит от вас. Но я чувствую, что лучше создать запись в правильном состоянии.
Избегайте I log in using my registered username and password
и вместо этого просто установите статус аутентификации непосредственно с помощью I am logged in
. Настройте порядок аналогично - не полагайтесь на производственный код, который вы не тестируете, иначе ваш тест не пройдёт при неправильных обстоятельствах.
Вы МОЖЕТЕ повторно использовать данные шаги, но они не должны полагаться на производственный код.