2014-11-21 72 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); 
});