我正在使用量角器进行黄瓜测试。在我的测试中,我有以下断言:
label.getText().then(
function(labelText){
labelText = labelText.trim();
console.log('label text: ' + labelText);
chai.expect(labelText).to.equal(arg1);
callback();
},
function() {
callback.fail('Could not get page label text');
});
当断言正确时,没有问题。但是当我的labelText与arg1不同时,我仍然希望继续运行它,但我不知道如何添加异常或失败回调。目前我的申请刚刚退出。我知道那是因为我没有使用失败的回调(我想知道我应该在哪里)。
我也不确定是否应该放回调();它现在在哪里。
我在网上寻找解决方案,我所能找到的只是使用Mocha的例子。我不是在使用摩卡或茉莉花。我只是使用带有量角器的Cucumber框架。由于Cucumberjs没有断言库,我加入了chai-as-promise。谢谢!
答案 0 :(得分:1)
当expect()
调用在回调中失败时,Cucumber.js似乎有问题。由于您已经安装了chai-as-promised,请尝试这样做:
var labelText = label.getText().then(
function(labelText){
labelText = labelText.trim();
console.log('label text: ' + labelText);
return labelText;
});
chai.expect(labelText).to.eventually.equal(arg1).then(callback);
我从this comment得到了这个解决方法,对我来说效果很好。
答案 1 :(得分:0)
如果你有chai-as-promised
,那么你可以断言像这样的异步代码:
this.When(/^I assert async code$/, function(callback) {
expect(asyncMethod()).to.eventually.equal(true).and.notify(callback);
});