В нескольких ответах предлагается императивный подход, который считается анти-паттерном в БДД.Вместо этого я настоятельно рекомендую вам придерживаться декларативного подхода с корнишоном, используя естественный или деловой язык.Если вы на самом деле тестируете функцию входа в систему, я бы предложил что-то вроде:
When an authorised user enters their credentials
или на основе ролей
When an Administrator is authorised
Если вход в систему является обязательным условием для тестируемой функции, тогда что-тотакие как:
Given an authorised user
или
Given an authorised Administrator
Их можно создать с помощью диспетчера учетных данных.
... = ExpectedData.credentialsFor("@authorised");
Тег должен представлять характеристики, а неидентичность ожидаемых данных, которые будут получены из тестовых данных db или csv, содержащих что-то вроде:
@admin, administrator, password
@authorised, user, password
@unauthorised, user, wrong
Такой же подход должен использоваться для ввода всех тестовых данных, например:
Given a Cash Customer
Given a Credit Customer
Given a Customer with an overdue account
Сильным преимуществом этого подхода является то, что тестовый костюм может быть легко использован повторно в другой среде, благодаря осведомленности о среде обработчика данных / учетных данных.