簡體   English   中英

在模擬文件中窺探 function

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM