内容简介:项目初始化地址拉取您可以选择为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单元测试
- 单元测试,只是测试吗?
- 单元测试和集成测试业务
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Python标准库
Doug Hellmann / 刘炽 / 机械工业出版社华章公司 / 2012-6-15 / 139.00元
本书由资深Python专家亲自执笔,Python语言的核心开发人员作序推荐,权威性毋庸置疑。 对于程序员而言,标准库与语言本身同样重要,它好比一个百宝箱,能为各种常见的任务提供完美的解决方案,所以本书是所有Python程序员都必备的工具书!本书以案例驱动的方式讲解了标准库中一百多个模块的使用方法(如何工作)和工作原理(为什么要这样工作),比标准库的官方文档更容易理解(一个简单的示例比一份手册......一起来看看 《Python标准库》 这本书的介绍吧!