有没有办法使用 jest API stub 函数?
我习惯于使用 sinon stub ,在那里我可以用 stub 为来自我测试单元的任何函数调用编写单元测试 -
http://sinonjs.org/releases/v1.17.7/stubs/
例如-
sinon.stub(jQuery, "ajax").yieldsTo("success", [1, 2, 3]);
最佳答案
与 jest
你应该使用 jest.spyOn
:
jest
.spyOn(jQuery, "ajax")
.mockImplementation(({ success }) => success([ 1, 2, 3 ]));
完整示例:
const spy = jest.fn();
const payload = [1, 2, 3];
jest
.spyOn(jQuery, "ajax")
.mockImplementation(({ success }) => success(payload));
jQuery.ajax({
url: "https://example.api",
success: data => spy(data)
});
expect(spy).toHaveBeenCalledTimes(1);
expect(spy).toHaveBeenCalledWith(payload);
您可以在
codesandbox
上尝试实时示例:https://codesandbox.io/s/018x609krw?expanddevtools=1&module=%2Findex.test.js&view=editor
关于unit-testing - 使用 jest stub 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45259086/