Mocha 作为前端测试框架的代表,也是前端工程师经常使用的一款测试工具。其中,expect 是 Mocha 中最为常用的断言库之一,它既可以用于单元测试,也适用于端对端测试。本文将详细介绍在 Mocha 中如何使用 expect 断言库。
expect 入门
来看一个简单的例子,该例子用 expect 断言是否相等:
describe('测试 expect', function() { it('1 + 1 应该等于 2', function() { expect(1 + 1).to.equal(2); }); });
其中,describe 和 it 都是 Mocha 中的语法,describe 用于描述一个测试区块,it 用于描述一个测试用例。expect 表示要进行一个检查,to 方法表示检查的类型,equal 表示期望的值。如果值不符合期望,会抛出错误,测试不通过。
接下来,就可以用 mocha 命令来运行这个测试用例:
$ mocha test.js
如果测试通过,就会显示类似如下的信息:
测试 expect ✓ 1 + 1 应该等于 2 1 passing (26ms)
如果测试不通过,则会抛出异常信息。
expect 应用
在实际开发过程中,expect 会用到很多不同的方法。下面就来罗列一下常见的方法:
- to.be.equal():判断是否相等
- to.be.true():判断是否为 true
- to.be.false():判断是否为 false
- to.be.ok():判断是否为真值
- to.be.null():判断是否为 null
- to.be.undefined():判断是否为 undefined
- to.be.NaN():判断是否为 NaN
- to.be.a():判断是否为某个类
- to.be.an():同上
- to.include():判断是否包含某个属性或元素
- to.have.property():判断是否存在属性
- to.have.ordered.members():判断是否为有序数组
- to.have.same.members():判断是否为无序数组
还是通过示例来展示这些方法的使用:
-- -------------------- ---- ------- ------------ ------ ------- ---------- - ----- - - ---- --- ---------- - -------- - ------------------ --- -------- --- ------ ---------- - ------------------------ --- --------- --- ------- ---------- - -------------------------- --- -------- ---- ------ ---------- - ------------------------ --- ------------- ---- ----------- ---------- - ---------------------------------- --- ------- ---- ----- ---------- - ---------------------- --- ------------------- ---------- - ----------------------------------- --- ----------------- ---------- - ---------- -- ---------------------- --- ----------- ---- ---- ---------- - --- --- - - ----- ----- ---- -- -- ------------------------------------- --- -------------- --- ---------- - ---------- -- ------------------ --- ------------- - - --------- ---------- - ---------- -- ------------------------------- ---- --- ------------- - - ------ ---------- - ---------- -- ---------------------------- ---- --- ---
进阶用法
在 Mocha 中,expect 可以和其他库一起使用,比如 Sinon。下面,通过示例来介绍这个用法。
-- -------------------- ---- ------- ------------ ------ - ----- ------ ---------- - ------- ------------------ ---------- - --- --- - - ---- ---------- - ------ ------ - - --- --- - -------------- ------- ---------- ---------------------------------- --- ---
在这个例子中,使用 Sinon.spy 方法来监控一个对象里的方法 foo。在执行了这个方法以后,就可以使用 expect 来判断这个方法是否被调用,即 spy.calledOnce 是否等于 true。
这点可以看出,expect 被很好地嵌入了测试工具链,可以和其他库一起使用,方便且易于理解和使用。
总结
本文详细讲解了在 Mocha 中如何使用 expect 断言库。通过多个示例,阐述了常见的用法和进阶用法,让读者能够对此有深入的认识。对于前端工程师来说,在使用 Mocha 进行前端测试的时候,expect 处于一个必须掌握的地位。希望这篇文章能够对读者们有所指导和帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/645329c9968c7c53b079cbbe