[当我遇到一个似乎无法弄清的问题之类的错误时,我正在为某些身份验证端点编写测试。
此test不会通过:
it("Testing /auth/signup/lol", () => {
const test = true;
expect(test).toBe(true);
console.log("finished test?");
});
我可以重现此问题的唯一方法是获取所有设置和拆卸代码,然后将其移至另一个文件,以及使我感到困扰的测试(正如我所做的那样,该测试是从auth.test.js复制的)。
我花了整整一天的时间来弄清问题,唯一的测试通过是我删除了设置代码。但是,在notebooks.test.js和auth.test.js(不包括auth.tests.js脚本底部的最后两个三个测试)上,设置代码可以按预期工作。
此代码有什么问题?
复制步骤:
我会发布一个小程序来重现该问题,但是所有尝试都失败了。
afterEach()方法中存在超时,因为collections.users.drop()返回一个未定义的值(结果未定义)。至少要在测试结果值时添加else子句,以便可以在达到10秒超时之前退出方法。也许需要一些额外的代码,但我不知道您的代码和测试的逻辑,所以也许afterEach应该做更多的事情。这是工作代码:
afterEach(done => {
server.getTokenManager().empty()
let collections = server.getClient()?.connection.collections
if (collections === undefined) {
done()
return
}
if (collections.users !== undefined) {
collections.users.drop((err: any, result: any) => {
if (result) {
done()
} else {
done()
}
})
}
}, 10000)
其余的代码都可以。