小编joo*_*orn的帖子

将笑话模拟包装在函数中以在多个测试中使用

我正在尝试将 jest.mock 包装到一个函数中,以便我可以在多个文件中重用它。我的用例是反应钩子,我正在使用打字稿。目前我的测试文件看起来像这样:

测试.tsx

//some imports

jest.mock('../path/to/hoook/whatever', () => ({
    useWhatever: jest.fn()
}))


const mockResult = () => {
    return ({
        some stuff
    };
};


describe('Component', () => {
let wrapper;

    beforeEach(() => {
        mocked(useWhatever).mockClear();

        mocked(useWhatever).mockImplementation(() => mockResult);

        wrapper = shallow(
            <Component />
        );
    });

    //tests below
});
Run Code Online (Sandbox Code Playgroud)

这工作得很好,但是这个无论什么钩子都会被其他组件使用,我正在尝试包装 jest.mock 以在其他测试中重用。我想做的事情看起来像这样:

模拟.ts

export const mockWhatever = () => jest.mock('../path/to/hoook/whatever', () => ({
    useWhatever: jest.fn()
}))


export const mockResult = () => {
    return ({
        some stuff
    };
};
Run Code Online (Sandbox Code Playgroud)

测试.tsx

//some …
Run Code Online (Sandbox Code Playgroud)

unit-testing typescript reactjs jestjs ts-jest

5
推荐指数
1
解决办法
4926
查看次数

标签 统计

jestjs ×1

reactjs ×1

ts-jest ×1

typescript ×1

unit-testing ×1