unit-testing - 使用 jest stub 函数

标签 unit-testing mocking jestjs sinon

有没有办法使用 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/

相关文章:

c - 如何使用 Clion 和 Cmake 的检查测试框架?

java - 使用抽象方法进行常规模拟

javascript - 模拟需要服务

unit-testing - 如何使用 Jest 测试 img.onerror

node.js - 通过谷歌云构建触发器部署 "sh: 1: jest: Permission denied"

javascript - 单元测试注入(inject)依赖关系,如 angularJS 中的服务 Controller

unit-testing - 如何在不使用 Visual Studio 的情况下启用代码覆盖率?

java - 私有(private)类单元测试

javascript - React 单元测试 onClick 方法中的 Mock Fetch API

reactjs - 使用 Jest 测试带有 Hooks 的 React 功能组件