Можете ли вы назвать сценарии как шаги в Behat 3?

При написании функциональных тестов некоторые части повторяются довольно часто. Например, пользователи, входящие в систему:

I go to "/login"I fill in "login" with "username"I fill in "password" with "password"I press "Login"

Я хотел бы определить эти шаги как:

Given I am logged in as "userA"

Теперь о Behat 2.x, я бы определил шаг в php:

return array(
new Step\Given('I go to "/login"'),
new Step\Then('I fill in "login" with "username"'),
new Step\Then('I fill in "password" with "password"'),
new Step\Then('I press "Login"'),
);

Это поведение все еще поощряется для Behat 3? Есть лучший способ сделать это?

5

Решение

Это называется цепочка выполнения шага и это было удалено в Behat 3. Вот это оригинальный ответ от создателя Behat.

Если вы хотите использовать MinkContext просто расширьте его в своем контексте или, если ваш код более сложный шаблон использования, такой как композиция.
Тогда вы сможете напрямую вызывать методы, отвечающие за эти шаги, такие как:

class FeatureContext extends MinkContext
{
/**
* @Given I am logged in as :user
*/
public function iAmLoggedInAsUser($user)
{
$this->visit('/login');
$this->fillField('login', 'username');
$this->fillField('password', 'password');
$this->pressButton('Login');
// make assertion to be sure user is logged in
}
}

Еще один замечательный разговор о контекстах, шагах и языке Behat Вот

7

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]