Behat3 Subcontexts

时间:2016-01-06 08:15:54

标签: php bdd behat

Behat的早期版本使用useContext包含子上下文并执行它们。我的问题是如何在Behat3中包含SubContext?

我试着查看Behat3文档,但看起来链接坏了,也尝试搜索stackoverflow但仍然没有线索。

1 个答案:

答案 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) {
        //...
    }
}

我没有测试过,但我非常有信心这会回答你的问题。