2014-11-21 136 views
1

我正在使用量角器来运行我的黄瓜测试。在我的测试中,我有以下的说法:量角器,黄瓜和柴如承诺:当柴断言失败

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。谢谢!

回答

1

当回调中的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得到这个解决方法,它的工作很适合我。

0

如果你有chai-as-promised那么你可以断言异步代码:

this.When(/^I assert async code$/, function(callback) { 
    expect(asyncMethod()).to.eventually.equal(true).and.notify(callback); 
});