访问automocked函数的.mock属性

时间:2017-06-21 08:09:03

标签: jestjs automocking

我有这段代码:

export async function x(data) {
    cache.push(data);

    console.log('HERE'); // this is printed

    return data;
}

模拟功能是:

__mocks__

模块的模拟位于a.x()目录。

a.x.mock调用模拟函数,但.mock未定义。

怎么可能? /tmp/python-test/testdj/testdj/属性在哪里?

1 个答案:

答案 0 :(得分:0)

因此,经过一些调查后,我发现__mocks__目录中声明的函数默认情况下不会被jest.fn()包装。

就个人而言,我觉得这件事有点令人困惑。

所以你可以做到两件事

function x(data) {
    cache.push(data);

    return cache;
}

jest.mock('a-a', () => ({x: x}))

如果您在同一个文件中执行所有操作,或

jest.mock('a-a');

然后在__mocks__/a-a.js文件中

export const x = jest.fn(async (data) => {
    cache.push(data);

    return cache;
});