异步测试_【自动化测试】【JestSelenium】(03)—— Jest 异步测试

本文介绍了如何在Jest中进行异步测试,包括使用`done`回调、返回Promise以及利用async/await。强调了在异步测试中确保断言被调用的重要性,并给出了`expect.hasAssertions()`和`expect.assertions(number)`的用法。通过多个示例展示了`resolves`和`rejects`的匹配器在测试异步操作中的应用。
摘要由CSDN通过智能技术生成

51eda676092ccdc3bd7db64a738997d5.png

目录1. 异步测试哪里特殊?2. 异步测试基本模式    2.1. test('...', (done) => {...}) 模式    2.2. Promise 模式    2.3. Async|Await 模式3. expect.hasAssertions()、expect.assertions(number)4. .resolves、.rejects
1. 异步测试哪里特殊?

在JavaScript中执行异步代码是很常见的。当你有以异步方式运行的代码时,Jest 需要知道当前它测试的代码是否已完成,然后它可以转移到另一个测试。

经典错误:

  • 默认情况下,Jest 测试一旦执行到末尾就会完成。

    • 问题在于一旦 fetchData 执行结束,此测试就在没有调用回调函数前结束。

function fetchData(callback) {
        setTimeout(() => callback('peanut butter'), 5 * 1000);}// 经典错误test('the data is peanut butter', () => {
        function callback(data) {
            expect(data).toBe('peanut butter');    }    fetchData(callback);});
2. 异步测试基本模式

2.1. test('...', (done) => {...}) 模式

  • Jest will wait if you provide an argument to the test function, usually called done.

    • 默认测试超时时间:5s

      • 可通过 testTimeout 选项配置

function fetchData(callback) {
        setTimeout(() => callback('peanut bu
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值