Mat*_*ner 22 unit-testing mocking sinon jestjs
有没有办法使用jest API存根函数?我习惯使用sinon存根,在那里我可以使用存根编写单元测试,用于从我测试的单元出来的任何函数调用 - http://sinonjs.org/releases/v1.17.7/stubs/
例如-
sinon.stub(jQuery, "ajax").yieldsTo("success", [1, 2, 3]);
Run Code Online (Sandbox Code Playgroud)
Ily*_*Zub 31
随jest
你应该使用jest.spyOn
:
jest
.spyOn(jQuery, "ajax")
.mockImplementation(({ success }) => success([ 1, 2, 3 ]));
Run Code Online (Sandbox Code Playgroud)
完整示例:
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);
Run Code Online (Sandbox Code Playgroud)
您可以尝试以下实例codesandbox
:https://codesandbox.io/s/018x609krw?expandandvtools = 1&module =%2Findex.test.js&view = editor
归档时间: |
|
查看次数: |
13965 次 |
最近记录: |