日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

React 16 + Jest单元测试 之 Mock Functions(Mock Names 和 Custom Matchers)

發布時間:2025/3/21 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 React 16 + Jest单元测试 之 Mock Functions(Mock Names 和 Custom Matchers) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉載

React 16 + Jest單元測試 之 Mock Functions(Mock Names 和 Custom Matchers)


項目初始化【這里使用之前的項目,節省時間】

項目初始化地址

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

總結

以上是生活随笔為你收集整理的React 16 + Jest单元测试 之 Mock Functions(Mock Names 和 Custom Matchers)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。