behat、小黄瓜和正则表达式:是否使用 "not"
behat, gherkin and regex: using "not" or not
我有 behat 条件,我想用函数覆盖,使用 "not":
Given this is happening
和 Given this is NOT happening
。我找不到有效的正则表达式。
这是我想要实现的目标:
/**
* @Given /^this is<regexCheckingNOT> happening$/
*/
public function thisIsHappening($not)
{
if ($not) {
// do this
}
// do that anyway
}
我尝试了这些但没有成功:
@Given /^this is(? NOT| ) happening$/
@Given /^this is( )?(NOT)? happening$/
我找不到办法做到这一点。
您可以通过将“not”设为可选来完成您想要做的事情:
/**
* @Given /^this is( not)? happening$/
*/
public function thisIsHappening($not = null)
{
if (null !== $not) {
// do this
}
// do that anyway
}
您需要提供默认值(即 null
),因为此参数不会出现在 "this is happening" 步骤中。
但是,我会考虑将这两种方法分开来使它们更简单:
/**
* @Given this is happening
*/
public function thisIsHappening()
{
// do that anyway
}
/**
* @Given this is not happening
*/
public function thisIsNotHappening()
{
// do this
// do that anyway if you need something to happen in both cases
$this->thisIsHappening();
}
为了进一步接受答案,您还可以使用这样的东西:
/**
* @Given /^this is(| not)? happening$/
*/
public function thisIsHappening($not)
{
if ($not === " not") {
// do this
} else {
// do that anyway
}
}
它遵循与已接受的规则相同的规则,但也意味着您不必为 $not
设置默认值,因为它可以是“not”或空白。
我有 behat 条件,我想用函数覆盖,使用 "not":
Given this is happening
和 Given this is NOT happening
。我找不到有效的正则表达式。
这是我想要实现的目标:
/**
* @Given /^this is<regexCheckingNOT> happening$/
*/
public function thisIsHappening($not)
{
if ($not) {
// do this
}
// do that anyway
}
我尝试了这些但没有成功:
@Given /^this is(? NOT| ) happening$/
@Given /^this is( )?(NOT)? happening$/
我找不到办法做到这一点。
您可以通过将“not”设为可选来完成您想要做的事情:
/**
* @Given /^this is( not)? happening$/
*/
public function thisIsHappening($not = null)
{
if (null !== $not) {
// do this
}
// do that anyway
}
您需要提供默认值(即 null
),因为此参数不会出现在 "this is happening" 步骤中。
但是,我会考虑将这两种方法分开来使它们更简单:
/**
* @Given this is happening
*/
public function thisIsHappening()
{
// do that anyway
}
/**
* @Given this is not happening
*/
public function thisIsNotHappening()
{
// do this
// do that anyway if you need something to happen in both cases
$this->thisIsHappening();
}
为了进一步接受答案,您还可以使用这样的东西:
/**
* @Given /^this is(| not)? happening$/
*/
public function thisIsHappening($not)
{
if ($not === " not") {
// do this
} else {
// do that anyway
}
}
它遵循与已接受的规则相同的规则,但也意味着您不必为 $not
设置默认值,因为它可以是“not”或空白。