内容简介:项目初始化地址拉取您可以选择为mock function提供一个名称,该名称将在测试错误输出中显示,而不是"jest.fn()"。如果您希望能够快速识别在测试输出中报告错误的mock function,请使用此选项。如下
项目初始化【这里使用之前的项目,节省时间】
项目初始化地址
https://github.com/durban89/webpack4-react16-reactrouter-demo.git tag:v_1.0.22
拉取
git clone https://github.com/durban89/webpack4-react16-reactrouter-demo.git cd webpack4-react16-reactrouter-demo git fetch origin git checkout v_1.0.22 npm install
Mock Names
您可以选择为mock function提供一个名称,该名称将在测试错误输出中显示,而不是"jest.fn()"。如果您希望能够快速识别在测试输出中报告错误的mock function,请使用此选项。如下
const myMockFunc = jest .fn() .mockReturnValue('default') .mockImplementation(v => 42 + v) .mockName('add42'); test('add 42', () => { expect(myMockFunc(1)).toEqual(43); });
Custom Matchers
最后,为了简化断言如何调用mock函数,Jest提供了一些自定义匹配器函数,如下
// mock function至少被调用一次 expect(mockFunc).toBeCalled(); // mock function至少在带有具体参数的情况下被调用一次 expect(mockFunc).toBeCalledWith(arg1, arg2); // mock function最后在带有具体参数的情况下被调用 expect(mockFunc).lastCalledWith(arg1, arg2); // 所有的调用和mock被作为snapshot写入到文件 expect(mockFunc).toMatchSnapshot();
这些匹配器实际上只是用于检查.mock属性的常见形式的糖。
可以自己手动完成此操作,如果想这更符合自己的口味或者需要做一些更具体的事情,比如如下这些
// mock function至少被调用一次 expect(mockFunc.mock.calls.length).toBeGreaterThan(0); // mock function至少在带有具体参数的情况下被调用一次 expect(mockFunc.mock.calls).toContain([arg1, arg2]); // mock function最后在带有具体参数的情况下被调用 expect(mockFunc.mock.calls[mockFunc.mock.calls.length - 1]).toEqual([ arg1, arg2, ]); // mock function被最后一次调用传入的第一个参数是`42` expect(mockFunc.mock.calls[mockFunc.mock.calls.length - 1][0]).toBe(42); // 一个snapshot将会检查mock在以同样的参数同样的次数被调用,它也将在名称上断言 expect(mockFunc.mock.calls).toEqual([[arg1, arg2]]); expect(mockFunc.mock.getMockName()).toBe('a mock name');
如果想要一个完成的matchers,可以到官网点击 这里 去查看
项目实践地址
https://github.com/durban89/webpack4-react16-reactrouter-demo.git tag:v_1.0.23
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- Vue 应用单元测试的策略与实践 02 - 单元测试基础
- Vue 应用单元测试的策略与实践 04 - Vuex 单元测试
- Vue 应用单元测试的策略与实践 03 - Vue 组件单元测试
- Angular单元测试系列-Component、Directive、Pipe 以及Service单元测试
- 单元测试,只是测试吗?
- 单元测试和集成测试业务
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
PHP and MySQL Web Development (3rd Edition) (Developer's Library
Luke Welling、Laura Thomson / Sams / 2004-09-29 / USD 49.99
We've taken the best and made it even better. The third edition of the best-selling PHP and MySQL Web Development has been updated to include material and code on MySQL 5, PHP 5 and on PHPs object mod......一起来看看 《PHP and MySQL Web Development (3rd Edition) (Developer's Library》 这本书的介绍吧!