У меня есть следующий сценарий:
@mink:selenium2
Scenario: Login
Given there are the following users:
| username | password | email |
| admin | 1234 | [email protected] |
When I am on "/login"
And I fill in "username" with "admin"
And I fill in "password" with "1234"
And I press "Login"
Then I should be on "/admin"
Поэтому я хотел бы иметь cleanupUsers как @AfterScenario, где я могу очистить все, что было вставлено в сценарий. Итак, как я могу получить доступ к TableNode пользователям?
Вы можете сохранить своих пользователей в частной собственности, чтобы вы могли получить к ним доступ позже, используя крючок:
private $users;
/**
* @Given there are the following users:
*/
public function thereAreFollowingUsers(TableNode $table)
{
$this->users = $table;
// ...
}
/**
* @AfterScenario
*/
public function cleanupUsers(AfterScenarioScope $scope)
{
if (null !== $this->users) {
// do the cleanups
// ...
// reset the property
$this->users = null;
}
}
Согласно документу: "hooks" также будет иметь доступ к любым свойствам объекта, которые вы задали во время своего сценария ".
Поэтому я думаю, что вам просто нужно сохранить TableNode
(или, лучше, только созданные идентификаторы пользователя) в свойстве вашего контекстного класса в коде данного параметра, Given there are the following users
шаг Given there are the following users
, а затем использовать его в cleanupUsers
.