zoukankan      html  css  js  c++  java
  • 蛋疼的mocha库-promise异步测试

    mocha 测试库的使用

    错误的处理异步测试

    • 异步当出现断言错误的时候,他会抛出错误,但不会把这次测试当作失败,就是正确的顺利通过测试了,很无语。
    • promise的reject会在then的第二个函数内处理,当遇到unhand的错误时,catch会进行处理,在then的函数内部出现运行错误,也会跳转到catch进行处理,相当于trycatch。如果不指定then的第二个函数,就会跳转到catch处理,catch中出现错误,就会出现unhand的错误,直接报错。自己想想
    • 或许是只有异步才会出现下列情况
    • describe('测试全部resolve', () => {// 在这里传入done,对不去,里面不能使用done
      it("返回['success1', 'success2']", (done) => {// 在这里传入done,确实可以使用done,但是只有断言错误,才会触发,如果断言正确,就会卡死,出现超时。
      promiseAll([
      delay(100, 'success1'),
      delay(50, 'success2'),
      ]).then((res) => {
      assert.deepEqual(res, ['success2', 'success1']);
      }, (err) => {
      done(err);
      })
      }).catch((err) => {
      done(err)
      })
      });

    正确的处理异步测试

    • 当处理promise等异步处理的时候,使用async函数去处理,会获得想要的结果。一个例子
    • describe('测试全部resolve', () => {
      it("返回['success1', 'success2']", async () => {
        await promiseAll([
          delay(100, 'success1'),
          delay(50, 'success2'),
        ]).then((res) => {
          assert.deepEqual(res, ['success2', 'success1']);
        }, (err) => {
          assert.fail();
        })
      })
      });
      
    • 这样,如果出现断言失败,才会得到想要的结果,用同步去处理异步断言测试。
  • 相关阅读:
    10. Regular Expression Matching
    9. Palindrome Number (考虑负数的情况)
    8. String to Integer (整数的溢出)
    7. Reverse Integer (整数的溢出)
    LeetCode Minimum Size Subarray Sum
    LeetCode Course Schedule II
    Linux 文件缓存 (一)
    LeetCode Tries Prefix Tree
    Linux : lsof 命令
    LeetCode Binary Tree Right Side View
  • 原文地址:https://www.cnblogs.com/zanzg/p/9968110.html
Copyright © 2011-2022 走看看