mockResolvedValueOnce 返回承诺而不是给定值

时间:2021-02-25 21:15:21

标签: reactjs testing jestjs mocking react-testing-library

import products from "services/products";

jest.mock("services/products", () => {
    return {
        getProducts: jest
            .fn()
            .mockImplementation(() => Promise.resolve([product, product])),
    };
});

((products.getProducts as unknown) as jest.Mock).mockResolvedValueOnce([product, product]);

为什么这个 [product, product] 数组当它到达代码时是 Promise {[product, product]}
结果我在那个数组映射上收到一个错误(array.map 不是一个函数)

1 个答案:

答案 0 :(得分:0)

jest.mock("services/products", () => {
    return {
        getProducts: jest
            .fn()
            .mockImplementation(() => [product, product]),
    };
});

我需要从 jest 模拟函数中删除 Promise.resolve() ,因为我不是在修改承诺,而且我也需要删除它,因为它是多余的:

((products.getProducts as unknown) as jest.Mock).mockResolvedValueOnce([product, product]);
相关问题