Mocha 测试失败并出现 AssertionError
Mocha Test Fails with AssertionError
在 JUnit (Java) 中,单元测试的结果是成功、失败或错误。
当我尝试 运行 使用 Mocha 进行测试时,要么成功要么断言错误。
通常是为失败测试获取 AssertionError 吗? (不应该只叫失败不叫错误吗?)
断言错误:-1 == 2
+ 预期 - 实际
如何测试异步代码?当我的测试失败时,我得到一个未捕获的错误?那是正常的吗?
像这样:
未捕获错误:预期 200 等于 201
您所描述的是 Mocha 的正常行为。此代码说明如果您不尝试在异步代码中捕获异常(即使由断言失败引发)会发生什么,以及如果您想避免未捕获的异常消息可以做什么:
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);
});
上面的代码产生了这个输出:
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)
在 JUnit (Java) 中,单元测试的结果是成功、失败或错误。
当我尝试 运行 使用 Mocha 进行测试时,要么成功要么断言错误。
通常是为失败测试获取 AssertionError 吗? (不应该只叫失败不叫错误吗?)
断言错误:-1 == 2 + 预期 - 实际
如何测试异步代码?当我的测试失败时,我得到一个未捕获的错误?那是正常的吗?
像这样:
未捕获错误:预期 200 等于 201
您所描述的是 Mocha 的正常行为。此代码说明如果您不尝试在异步代码中捕获异常(即使由断言失败引发)会发生什么,以及如果您想避免未捕获的异常消息可以做什么:
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);
});
上面的代码产生了这个输出:
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)