Behat:在场景中的步骤之间使用变量
Behat: use variable between the steps in a scenario
如何在 behat 的一个场景中的步骤之间使用变量?
我需要存储 $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";
}
}
}
上下文class可以是有状态的;场景的所有步骤都将使用相同的上下文实例。这意味着您可以使用常规 class 属性来反转步骤之间的状态:
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";
}
}
}
如何在 behat 的一个场景中的步骤之间使用变量? 我需要存储 $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";
}
}
}
上下文class可以是有状态的;场景的所有步骤都将使用相同的上下文实例。这意味着您可以使用常规 class 属性来反转步骤之间的状态:
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";
}
}
}