NodeJS: 使用Jest测试异步代码

这篇博客介绍了如何在Jest测试中处理异步代码,通过两种方法:调用done()函数和使用async/await语法。文章详细展示了如何在异步函数add中返回Promise,并在测试用例中验证其结果。测试例子包括了对正数相加的预期结果和处理负数输入时的错误情况。
摘要由CSDN通过智能技术生成

如下的异步函数add返回 promise:

const add = (a, b) => {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      if (a < 0 || b < 0) {
        return reject("Numbers must be non-negative");
      }

      resolve(a + b);
    }, 2000);
  });
};

有两种方法测试异步代码:

  1. 调用done()告知Jest异步进程已经完成,这里的done也可以是别的名称。
test("Should add two numbers", (done) => {
  add(2, 3).then((sum) => {
    expect(sum).toBe(5);
    done();
  });
});
  1. 使用async / await, 因为代码更清晰,这种方法更为常见。
test("Should add two numbers async/await", async () => {
  const sum = await add(1, 30);
  expect(sum).toBe(31);
});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值