[英]Spy function in mock file
我有一個名為StateService
的模擬文件,位於__mocks__
文件夾中
export default {
goTo: jest.fn(),
goToNewTab: jest.fn(),
goToPreviousAppState: jest.fn(),
reload: jest.fn()
}
在我的測試中,我想監視goToNewTab
並檢查 function 是否已被調用。 我現在正在做的是將模擬文件導入我的測試,然后,在我的測試本身中,我像這樣調用期望:
expect(StateService.goToNewTab).toHaveBeenCalled();
但是期望沒有返回正值。
假設您在services/StateService.js
中有一個文件(為簡單起見,我將只定義goToNewTab
服務):
function goToNewTab() {
// Your logic here.
}
export default {
goToNewTab
};
然后,您在services/__mocks__/StateService.js
中創建此模塊的模擬:
export default {
goToNewTab: jest.fn()
};
現在,您正在測試一個調用goToNewTab
服務的模塊。 假設它位於utils/navigation.js
中:
import StateService from '../services/StateService';
export default function() {
StateService.goToNewTab();
}
使用模擬服務對此類模塊的測試如下所示:
import StateService from '../services/StateService';
import navigation from './navigation';
jest.mock('../services/StateService');
it('Should mock call', () => {
navigation();
expect(StateService.goToNewTab).toHaveBeenCalled();
});
請注意,如果您在測試中需要StateService
模塊,則需要顯式調用模塊的jest.mock
,如文檔中所述。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.