内容简介:项目初始化地址拉取您可以选择为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
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Programming Collective Intelligence
Toby Segaran / O'Reilly Media / 2007-8-26 / USD 39.99
Want to tap the power behind search rankings, product recommendations, social bookmarking, and online matchmaking? This fascinating book demonstrates how you can build Web 2.0 applications to mine the......一起来看看 《Programming Collective Intelligence》 这本书的介绍吧!