在我们使用mocha
进行测试的时候,会结合断言库去使用,经常一起使用的是chai
,但是还有assert
,expect
,should
这几种断言库,那么接下来了解一下他们的区别
assert
TDD风格
API
样例:
assert("mike" == user.name);
should
BDD风格
API
样例:
foo.should.be("aa");
expect
BDD风格,基于should
的简化
API
样例:
expect(foo).to.be("aa");
chai
BDD/TDD风格,同时支持should
,assert
,expect
API
样例:
foo.should.be("aa");
assert("mike" == user.name);
expect(foo).to.be("aa");
should和expect的区别
当被测对象为undefined
时,should
就失效,而expect
依然可以给出信息
例如使用should
:
// foo === undefined
foo.should.equal('aa');
此时错误信息为: Cannot read property 'should' of undefined
,如果使用expect
:
// foo === undefined
expect(foo).to.equal('aa');
给出的信息为:expected undefined to equal 'foo'
故使用expect
优于should
网友评论