我使用摩卡和柴作爲斷言。柴,摩卡:確定應該斷言
我在幾個規格斷言
Exp1.should.be.true Exp2.should.be.true Exp3.should.be.true
如果其中一個出現故障摩卡寫入「預計錯誤是真實的「,它有一種方法來識別它們?
有了希望我能做到這一點: 期待(EXP1, 'EXP1')to.be真
是水木清華像這可能與應該?
我使用摩卡和柴作爲斷言。柴,摩卡:確定應該斷言
我在幾個規格斷言
Exp1.should.be.true Exp2.should.be.true Exp3.should.be.true
如果其中一個出現故障摩卡寫入「預計錯誤是真實的「,它有一種方法來識別它們?
有了希望我能做到這一點: 期待(EXP1, 'EXP1')to.be真
是水木清華像這可能與應該?
顯然should
此刻不支持自定義錯誤消息。
您可以創建自己的助手來設置消息:
var chai = require('chai'),
should = chai.should();
// Helper definition - should be in a shared file
chai.use(function(_chai, utils) {
_chai.Assertion.addMethod('withMessage', function(msg) {
utils.flag(this, 'message', msg);
});
});
// Sample usage
it('should fail', function() {
var Exp1 = false;
var Exp2 = false;
Exp1.should.be.withMessage('Exp1').true;
Exp1.should.withMessage('Exp2').be.true;
});
我不知道爲什麼他們沒有簡單地增加其發射線的斷言,但我遇到了這個確切的同樣的問題我自己。一位能夠比我注意到的手冊更好的同事有一個includeStack
的設置,它將給出斷言的行號。 http://chaijs.com/guide/styles/#configure
因爲我做了很多異步的,我可能會遇到我的測試中before
或beforeEach
,然後運行每個斷言獨立it
。
我檢查了chai code with respect to should,發現目前接受的答案不正確或不完整。
如果您在那裏閱讀,您會發現確實有辦法在每個斷言中包含您自己的自定義消息。問題在於,您可能需要更改斷言語法來代替使用should
的函數調用。
(1).should.equal(0, 'This should fail');
/****** Output with (I believe) default reporter *****
* This should fail
* + expected - actual
*
* -1
* +0
*/
請注意,如果您使用自己的記者,您的輸出可能會有所不同。如果你覺得這樣傾向,你可能會包裝should
的函數,以便在斷言輸出中總是包含行號。