gpt4 book ai didi

reactjs - 使用 toHaveBeenNthCalledWith 时 react Jest 测试错误

转载 作者:行者123 更新时间:2023-12-04 16:43:19 28 4
gpt4 key购买 nike

我正在关注 Jest 的 documentation但是我无法解决以下错误。 expect(dummyFunction).toHaveBeenNthCalledWith is not a function
除非我遗漏了什么,我很确定我有我的 dummyFunction正确设置为 jest.fn() .我什至安慰了 dummyFunction 的输出就在我在测试中使用它之前,这是输出。

dummyFunction console.log 输出

    { [Function: mockConstructor]
_isMockFunction: true,
getMockImplementation: [Function],
mock: [Getter/Setter],
mockClear: [Function],
mockReset: [Function],
mockReturnValueOnce: [Function],
mockReturnValue: [Function],
mockImplementationOnce: [Function],
mockImplementation: [Function],
mockReturnThis: [Function],
mockRestore: [Function] }

toHaveBeenCalledNthWith 测试
const dummyFunction = jest.fn();

expect(dummyFunction).toHaveBeenCalledTimes(2); // pass

expect(dummyFunction).toHaveBeenNthCalledWith(1, { foo: 'bar' }); // error
expect(dummyFunction).toHaveBeenNthCalledWith(2, { please: 'work' });

在此先感谢您的帮助。

最佳答案

toHaveBeenNthCalledWith发布于 Jest版本23.0.0因此,如果您使用的是 Jest 的早期版本,您将看到该错误。 .

请注意 toHaveBeenNthCalledWith就是 syntactic sugar for using spy.mock.calls[nth] 所以如果你使用的是早期版本的 Jest您只需执行以下操作:

const dummyFunction = jest.fn();

dummyFunction({ foo: 'bar' });
dummyFunction({ please: 'work' });

expect(dummyFunction).toHaveBeenCalledTimes(2); // pass

expect(dummyFunction.mock.calls[0]).toEqual([{ foo: 'bar' }]); // pass
expect(dummyFunction.mock.calls[1]).toEqual([{ please: 'work' }]); // pass

关于reactjs - 使用 toHaveBeenNthCalledWith 时 react Jest 测试错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54540006/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com