React 16 + Jest单元测试 之 Mock Functions(Mock Names 和 Custom Matchers)
生活随笔
收集整理的這篇文章主要介紹了
React 16 + Jest单元测试 之 Mock Functions(Mock Names 和 Custom Matchers)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
轉(zhuǎn)載
React 16 + Jest單元測試 之 Mock Functions(Mock Names 和 Custom Matchers)
項(xiàng)目初始化【這里使用之前的項(xiàng)目,節(jié)省時間】
項(xiàng)目初始化地址
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 installMock Names
您可以選擇為mock function提供一個名稱,該名稱將在測試錯誤輸出中顯示,而不是"jest.fn()"。如果您希望能夠快速識別在測試輸出中報(bào)告錯誤的mock function,請使用此選項(xiàng)。如下
const myMockFunc = jest.fn().mockReturnValue('default').mockImplementation(v => 42 + v).mockName('add42');test('add 42', () => {expect(myMockFunc(1)).toEqual(43); });Custom Matchers
最后,為了簡化斷言如何調(diào)用mock函數(shù),Jest提供了一些自定義匹配器函數(shù),如下
// mock function至少被調(diào)用一次 expect(mockFunc).toBeCalled();// mock function至少在帶有具體參數(shù)的情況下被調(diào)用一次 expect(mockFunc).toBeCalledWith(arg1, arg2);// mock function最后在帶有具體參數(shù)的情況下被調(diào)用 expect(mockFunc).lastCalledWith(arg1, arg2);// 所有的調(diào)用和mock被作為snapshot寫入到文件 expect(mockFunc).toMatchSnapshot();這些匹配器實(shí)際上只是用于檢查.mock屬性的常見形式的糖。
可以自己手動完成此操作,如果想這更符合自己的口味或者需要做一些更具體的事情,比如如下這些
// mock function至少被調(diào)用一次 expect(mockFunc.mock.calls.length).toBeGreaterThan(0);// mock function至少在帶有具體參數(shù)的情況下被調(diào)用一次 expect(mockFunc.mock.calls).toContain([arg1, arg2]);// mock function最后在帶有具體參數(shù)的情況下被調(diào)用 expect(mockFunc.mock.calls[mockFunc.mock.calls.length - 1]).toEqual([arg1,arg2, ]);// mock function被最后一次調(diào)用傳入的第一個參數(shù)是`42` expect(mockFunc.mock.calls[mockFunc.mock.calls.length - 1][0]).toBe(42);// 一個snapshot將會檢查mock在以同樣的參數(shù)同樣的次數(shù)被調(diào)用,它也將在名稱上斷言 expect(mockFunc.mock.calls).toEqual([[arg1, arg2]]); expect(mockFunc.mock.getMockName()).toBe('a mock name');如果想要一個完成的matchers,可以到官網(wǎng)點(diǎn)擊這里去查看
?
項(xiàng)目實(shí)踐地址
https://github.com/durban89/webpack4-react16-reactrouter-demo.git tag:v_1.0.23總結(jié)
以上是生活随笔為你收集整理的React 16 + Jest单元测试 之 Mock Functions(Mock Names 和 Custom Matchers)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 测试daoorg.hibern
- 下一篇: Andrew Ng 深度学习笔记-01-