Behat - 编程测试步骤定义(ArrayLoader)

时间:2015-07-14 16:45:58

标签: php bdd behat gherkin

我使用Gherkin语言成功地将Behat 3.0与功能文件中定义的测试结合使用。但是,在某些情况下,以编程方式定义步骤会很有用 - Gherkin是可读的,但很难定义多个变体。

有没有办法以编程方式定义测试步骤(在PHP类中),这些可以被Behat选取?我找到了ArrayLoader类,似乎能够做到这一点。但是,我无法使它与Behat合作。似乎Behat默认使用Gherkin FileLoader并且我没有找到在配置文件中重写此行为(或者更确切地说是扩展)的方法。

如何将Gherkin文件的测试输入与PHP文件中指定的自定义定义结合起来?

1 个答案:

答案 0 :(得分:0)

  

有没有办法以编程方式定义测试步骤(在PHP中   类),...

如果我不想误解你想要的东西,你可以这样做:

use Behat\Behat\Definition\Call\Then;
use Behat\Behat\Definition\Call\When;
use Behat\MinkExtension\Context\MinkContext;

class FeatureContext extends MinkContext
{
    public function iWaitSeconds($second)
    {
        new Then(.....);
        new When(.....);
        new Given(.....);
    }
}

您需要对更多示例进行一些研究。

例如:new When("The content is:", new PyStringNode($string));