断言
断言(assert)指的是对代码行为的预期。一个测试用例内部,包含一个或多个断言(assert)。
断言会返回一个布尔值,表示代码行为是否符合预期。测试用例之中,只要有一个断言为false,这个测试用例就会失败,只有所有断言都为true,测试用例才会通过。
比如上节示例中的:
assert.equal(-1, [1,2,3].indexOf(5));
assert.equal(-1, [1,2,3].indexOf(0));
实际值(-1)和期望值([1,2,3].indexOf(5))是一样的,断言为true,所以这个测试用例成功了。
mocha 允许开发者使用任意的断言库,当这些断言库抛出了一个错误异常时,mocha将会捕获并进行相应处理。这意味着你可以利用如 should.js断言库、 Node.js 常规的 assert 模块或其它类似的断言代码库。以下是众所周知的适用于Node.js或浏览器的断言库:
- should.js
- expect.js
- chai.js
- better-assert
- assert:nodejs原生模块,在前文示例中我们有应用到。
PS:由于Mocha自身不带断言库,所以我们需要引入一个断言库。本课程中使用的是chai.js,为什么会选这个断言库呢?