我使用摩卡和柴作为断言。柴,摩卡:确定应该断言
我在几个规格断言
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
的函数,以便在断言输出中总是包含行号。