使用 jest 进行 javascript 单元测试 : how to mock async call

标签 javascript unit-testing typescript jestjs

我是 TypeScript 新手,之前从事过 Java 工作。我正在寻找相当于 TypeScript 的 java junit(Mockito)。 在每个测试的 junit 中,我们可以定义依赖行为并根据测试用例需求返回响应。 Jest 中也有类似的方法吗? 我可以在其中简单地定义。 当(dependencyFunction()).then(mockResponse1);

并且在不同的测试中 当(dependencyFunction()).then(mockResponse2);

这是我的 typescript 类的样子:

class ABC {
   static fun1(){
       const xyz = await dependency();
       return xyz === 'DONE';
   }
}

在这里,我想编写测试用例,其中我可以在每个测试用例中定义模拟响应。

最佳答案

来自 documentation你可以为此使用模拟函数 并使用 mockReturnValueOncemockReturnValue 作为您的响应

const myMock = jest.fn();

myMock
  .mockReturnValueOnce(10) // set the response once
  .mockReturnValueOnce('x')
  .mockReturnValue(true); // set a persistent response 

console.log(myMock(), myMock(), myMock(), myMock());
// > 10, 'x', true, true

关于使用 jest 进行 javascript 单元测试 : how to mock async call,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47975849/

相关文章:

javascript - 从 Controller 输出到 HTML 表单

javascript - Angular2 指令基于动态添加的 css 类

unit-testing - 如何使用 Microsoft Fakes 框架填充实例方法?

javascript - 在 ramda.js 中合并两个属性

javascript - JSON数据到JS中的有效数据数组

Laravel API 测试单元与功能

javascript - 在 AngularJS 事件单元测试中模拟事件对象

angular - 任何人都可以向我解释一下给定的代码片段吗?它能做什么?

javascript - 带有属性装饰器的 TypeScript 类就像静态的一样

css - 在运行时将 css 类添加到传单层