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

Php Behat-编程测试步骤定义(ArrayLoader),php,bdd,behat,gherkin,Php,Bdd,Behat,Gherkin,我成功地使用了Behat3.0和功能文件中定义的测试,使用了Gherkin语言。然而,在某些情况下,以编程方式定义这些步骤会很有用——小黄瓜可读,但很难定义多个变体 有没有一种方法可以通过编程方式定义PHP类中的测试步骤,以便Behat能够选择这些步骤?我找到了ArrayLoader类,它似乎能够做到这一点。然而,我无法使它与Behat一起工作。看来Behat默认使用的是Gherkin FileLoader,我还没有找到重写这种行为的方法,或者在配置文件中进行扩展 如何将来自小黄瓜文件的测试输入

我成功地使用了Behat3.0和功能文件中定义的测试,使用了Gherkin语言。然而,在某些情况下,以编程方式定义这些步骤会很有用——小黄瓜可读,但很难定义多个变体

有没有一种方法可以通过编程方式定义PHP类中的测试步骤,以便Behat能够选择这些步骤?我找到了ArrayLoader类,它似乎能够做到这一点。然而,我无法使它与Behat一起工作。看来Behat默认使用的是Gherkin FileLoader,我还没有找到重写这种行为的方法,或者在配置文件中进行扩展

如何将来自小黄瓜文件的测试输入与PHP文件中指定的自定义定义相结合

有没有办法用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(.....);
    }
}
你需要做一些研究来获得更多的例子


e、 g:新增内容为:,新增PyStringNode$string

那还不错。我需要PHPUnit中类似DataProvider的东西:定义一个方法,但让Behat使用不同的参数多次运行它。