Behat: используйте переменную между шагами в сценарии

Как я могу использовать переменную между шагами в рамках одного сценария в Beat?
Мне нужно сохранить значение $ output и затем использовать его на втором шаге.

Допустим, у меня есть следующая структура:

class testContext extends DefaultContext
{
/** @When /^I click "([^"]*)"$/ */
public function iClick($element) {
if ($element = 2){
$output = 5
}
}


/** @When /^I press "([^"]*)"$/ */
public function iPress($button) {
if($button == $output){
echo "ok";
}
}
}

2

Решение

Класс контекста может быть с состоянием; все шаги сценария будут использовать один и тот же экземпляр контекста. Это означает, что вы можете использовать обычные атрибуты класса для изменения состояния между шагами:

class testContext extends DefaultContext
{
private $output = NULL;

/** @When /^I click "([^"]*)"$/ */
public function iClick($element)
{
if ($element = 2) {
$this->output = 5;
}
}


/** @When /^I press "([^"]*)"$/ */
public function iPress($button)
{
if ($this->output === NULL) {
throw new BadMethodCallException("output must be initialized first");
}

if ($button == $this->output) {
echo "ok";
}
}
}
3

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

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

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