Mocha测试因AssertionError失败

use*_*075 11 javascript testing unit-testing mocha.js

在JUnit(Java)中,单元测试的结果是成功,失败或错误.

当我尝试使用Mocha运行测试时,我获得了成功或断言错误.

通常是为失败测试获取AssertionError吗?(它不应该被称为失败而不是错误吗?)

断言错误:-1 == 2 +预期 - 实际

那么测试异步代码呢?当我的测试失败时,我得到一个未捕获的错误?这是正常的吗?

像这样:

未捕获的错误:预计200到201等于

Lou*_*uis 17

你所描述的是摩卡的正常行为.此代码说明了如果您不尝试在异步代码中捕获异常(甚至由断言失败引发异常)以及如果您想要避免未捕获的异常消息,您可以执行的操作会发生什么:

var assert = require("assert");

it("fails with uncaught exception", function (done) {
    setTimeout(function () {
        assert.equal(1, 2);
        done();
    }, 1000);
});

it("fails with assertion error", function (done) {
    setTimeout(function () {
        try {
            assert.equal(1, 2);
            done();
        }
        catch (e) {
            done(e);
        }
    }, 1000);
});
Run Code Online (Sandbox Code Playgroud)

上面的代码产生了这个输出:

  1) fails
  2) fails

  0 passing (2s)
  2 failing

  1)  fails:
     Uncaught AssertionError: 1 == 2
      at null._onTimeout (/tmp/t2/test.js:5:16)
      at Timer.listOnTimeout [as ontimeout] (timers.js:112:15)

  2)  fails:
     AssertionError: 1 == 2
      at null._onTimeout (/tmp/t2/test.js:13:20)
      at Timer.listOnTimeout [as ontimeout] (timers.js:112:15)
Run Code Online (Sandbox Code Playgroud)