React Jest - 用回调模拟一个函数

时间:2018-01-22 23:07:32

标签: reactjs unit-testing mocking jest

我正在尝试为以下代码编写测试

var throttle = require('lodash.throttle');

 search = throttle(async (searchTerm:string) => {
    const response = await AxiosWrapper.Instance.post(this.props.url, { "searchTerm": searchTerm });

    this.setState({
        searchResult: response.data as ISearchResult,
        showSearchResult: true
    });
},500);

所以,我的模拟看起来像

 jest.mock("lodash.throttle", () => {
            console.log("blah");
        });

我想从throttle func执行回调。

1 个答案:

答案 0 :(得分:0)

如果查看jest docs for jest.mock,第二个参数是一个工厂(函数),它返回模块的模拟值。在这种情况下,我们正在模拟lodash.throttle函数,因此我们需要一个返回函数的工厂。如果你想模拟lodash.throttle这样它只是调用传入的回调,你会做

jest.mock("lodash.throttle", () => cb => cb())