我使用Gherkin语言成功地将Behat 3.0与功能文件中定义的测试结合使用。但是,在某些情况下,以编程方式定义步骤会很有用 - Gherkin是可读的,但很难定义多个变体。
有没有办法以编程方式定义测试步骤(在PHP类中),这些可以被Behat选取?我找到了ArrayLoader
类,似乎能够做到这一点。但是,我无法使它与Behat合作。似乎Behat默认使用Gherkin FileLoader
并且我没有找到在配置文件中重写此行为(或者更确切地说是扩展)的方法。
如何将Gherkin文件的测试输入与PHP文件中指定的自定义定义结合起来?
答案 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));