断言失败后摩卡测试冻结
Mocha test freezes after failing assert
所以我正在使用 mocha 来测试我的简单 express 应用程序。
在第一次失败之前,测试工作正常。失败后,测试会冻结在某些断言(承诺)循环中。
如果 sumInPromise 函数不是 promise,那么它会正常工作。对我做错了什么有什么建议吗?
代码:
describe("Dummy test", () => {
before((done: Done) => {
app ? done() : initStart()
.then(() => {
while (app == null) {
//empty
}
done();
})
.catch((err) => done(err));
});
after((done: Done) => {
app ? done() : closeServer()
.then(() => done())
.catch((err) => done(err));
});
const sumInPromise = (a: number, b: number) => {
return Promise.resolve(a + b);
};
it("OK, dummyPromise", async (done: Done) => {
const sum = await sumInPromise(2, 2);
assert.equal(sum, 5);
done();
});
});
我用旧的方式编写 mocha 测试...我无法完全解释原因和方式,但应该返回承诺。这是我当前有效的代码:
it("OK, dummyPromise", () => {
return sumInPromise(2, 2).then(sum => assert.equal(sum, 5));
});
所以我正在使用 mocha 来测试我的简单 express 应用程序。 在第一次失败之前,测试工作正常。失败后,测试会冻结在某些断言(承诺)循环中。
如果 sumInPromise 函数不是 promise,那么它会正常工作。对我做错了什么有什么建议吗?
代码:
describe("Dummy test", () => {
before((done: Done) => {
app ? done() : initStart()
.then(() => {
while (app == null) {
//empty
}
done();
})
.catch((err) => done(err));
});
after((done: Done) => {
app ? done() : closeServer()
.then(() => done())
.catch((err) => done(err));
});
const sumInPromise = (a: number, b: number) => {
return Promise.resolve(a + b);
};
it("OK, dummyPromise", async (done: Done) => {
const sum = await sumInPromise(2, 2);
assert.equal(sum, 5);
done();
});
});
我用旧的方式编写 mocha 测试...我无法完全解释原因和方式,但应该返回承诺。这是我当前有效的代码:
it("OK, dummyPromise", () => {
return sumInPromise(2, 2).then(sum => assert.equal(sum, 5));
});