我最近在Cypress上使用Cucumber的次数很多(实际上是在编写一个框架:picklejs.com)。我喜欢用简单的英语定义所有内容。
但是,我似乎找不到使用其他When语句定义我的Given语句的方法。我只能以编程方式定义它。
关于如何实现这一目标的任何想法?
Ex
GivenDef: I do 2 actions
When I do action 1
And I do action 2
Scenario: I do 3 actions
Given I do 2 actions
When I do action 3
答案 0 :(得分:2)
您要从另一个方案中调用一个方案。小黄瓜不支持该功能。而且也不可能得到支持,因为这导致使用Gherkin作为编程语言。
那如何实现呢?以更高的抽象级别表达您的方案。执行步骤时,这种较高级别的方案将委派给一个或多个帮助程序库。就像@ joshua-wade所建议的那样。
是倒退吗?这取决于您的观点。如果将Gherkin用作用于指定测试的编程语言,则它看起来可能倒退。如果Gherkin是用业务语言记录应如何使用您的系统的示例的一种方式,那么倒不是那么回事。至少我不认为。
答案 1 :(得分:0)
纯粹是一个小黄瓜问题,我不认为您的要求是直接可能的。作为定义测试的一种方式,这是小黄瓜的局限性。
我已经看到它建议建立一个用于测试功能的帮助程序库,并在您的步骤定义中调用这些外部函数。这样,您可以执行以下操作:
小黄瓜:
Fruit_Project
步骤定义:
Scenario: I do 3 actions
Given I do 2 actions
When I do action 3
帮助程序库:
Given("I do 2 actions", () => {
action1();
action2();
});
When("I do action 3", () => {
action3();
});
如果代码不完全正确,我深表歉意。我只在Ruby中使用了Cucumber。