开玩笑:从另一个模拟函数返回的期望函数

时间:2019-11-14 05:40:59

标签: node.js jestjs

我的代码是这样的:

b.mockImplementation(() => {
    return {
        create: () => '',
    }
}

在我的玩笑文件中,我像这样模拟函数b():

await A();
expect(b).toHaveBeenCalled();

现在,我想检查是否调用了myObj.create()。我怎么做? 像这样:

[, ]+

1 个答案:

答案 0 :(得分:1)

您必须返回模拟对象,而不是返回匿名对象。使用模拟对象,您可以控制功能create是否必须调用。

// Mocked object with `create` property is a mock function
const mockedMyObj = {
  create: jest.fn(),
};

// b is a async function, we just mock the return value. 
b.mockResolvedValue(Promise.resolve(mockedMyObj));

// expect
await A();
expect(b).toHaveBeenCalled();
// now you can verify the `create` function
expect(mockedMyObj.create).toHaveBeenCalled();