量角器,黄瓜和柴如承诺:当柴断言失败
问题描述:
我正在使用量角器来运行我的黄瓜测试。在我的测试中,我有以下的说法:量角器,黄瓜和柴如承诺:当柴断言失败
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。谢谢!
答
当回调中的expect()
调用失败时,Cucumber.js似乎有问题。既然你已经柴作为许诺的安装,试试这样做:
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得到这个解决方法,它的工作很适合我。
答
如果你有chai-as-promised
那么你可以断言异步代码:
this.When(/^I assert async code$/, function(callback) {
expect(asyncMethod()).to.eventually.equal(true).and.notify(callback);
});