我们正在使用Chai-as-promised与量角器和cucumberjs。我对chai-as-promise库中的.notify(回调)方法有疑问。
如果我们运行多个方案,每个方案都有几个步骤。应该在每个步骤结束时调用notify()吗?
所以
Scenario 1
Step 1 Expect(promise).to.eventually.to.equal(true).and.notify(callback);
Step 2 Expect(promise2).to.eventually.to.equal(true).and.notify(callback);
Scenario 2
Step 3 Expect(promise3).to.eventually.to.equal(true).and.notify(callback);
Step 4 Expect(promise4).to.eventually.to.equal(true).and.notify(callback);
我总是在最后一步中只有'and.notify(回调)'。
所以
Scenario 1
Step 1 Expect(promise).to.eventually.to.equal(true);
Step 2 Expect(promise2).to.eventually.to.equal(true).and.notify(callback);
Scenario 2
Step 3 Expect(promise3).to.eventually.to.equal(true);
Step 4 Expect(promise4).to.eventually.to.equal(true).and.notify(callback);
我在github页面上有类似的问题。 https://github.com/domenic/chai-as-promised/issues/65
答案 0 :(得分:1)
在CucumberJS
v0.5.0
之前,需要使用callback
参数定义所有步骤定义,该步骤在步骤执行完毕后需要调用。
在v0.5.0
中,他们更新了库,因此不再需要callback
参数。来自CHANGELOG:
新功能
- 支持步骤定义的承诺(Will Farrell)
- 支持同步步骤定义(Julien Biezemans)
虽然来自chai-as-promised
断言aren't real promises的返回值,但它们的界面与CucumberJS
类似,足以让它们像承诺一样对待它们。所以,回答你的问题:
CucumberJS
v0.5.0
之前,您必须在每个步骤结束时致电notify()
。CucumberJS
v0.5.0
之后,您无需在任何步骤结束时致电notify()
。