Behat的早期版本使用useContext包含子上下文并执行它们。我的问题是如何在Behat3中包含SubContext?
我试着查看Behat3文档,但看起来链接坏了,也尝试搜索stackoverflow但仍然没有线索。
答案 0 :(得分:2)
您可以执行类似
的操作//behat.yml
default:
suites:
default:
contexts: [FeatureContext, SubContext]
//FeatureContext.php
<?php
use Behat\Behat\Context\Context;
use Behat\Behat\Hook\Scope\BeforeScenarioScope;
class FeatureContext implements Context {
private $subContext;
/** @BeforeScenario */
public function fetchContexts(BeforeScenarioScope $scope)
{
$environment = $scope->getEnvironment();
$this->subContext = $environment->getContext('SubContext');
}
/** @When I do something on :foo */
function IDoSomethingOnFoo($foo) {
$this->subContext->doSomethingOnFoo($foo);
}
}
//SubContext.php
<?php
use Behat\Behat\Context\Context;
class SubContext implements Context {
function doSomethingOnFoo($foo) {
//...
}
}
我没有测试过,但我非常有信心这会回答你的问题。