jestjs - 开玩笑测试不会通过,即使第一个测试被评论
问题描述
当我遇到一个我似乎无法弄清楚的问题时,我正在为一些身份验证端点编写测试。
此测试不会通过:
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 脚本底部的最后两个三个测试)上,设置代码按预期工作。
这段代码有什么问题?
重现步骤:
- 克隆此存储库
- 切换到开发分支
- 进入后台目录
- 安装所有软件包
- 运行'npm test tests/endpoints/auth2.test.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)
其余代码没问题。
推荐阅读
- python - numpy.where 带有二维元组数组
- php - 下拉列表在 Chrome 中提供,但在 Firefox 中没有
- c++ - c++ - 如何使用运算符重载将矩阵与数字相加?
- sql - sql group by 没有 sum 函数
- python - Pandas:如何计算一列相对于另一列的百分比?
- cross-validation - 生存分析的交叉验证输出解释
- node.js - 在节点中使用 dynamoose 在 dynamodb 模式中搜索值列表
- r - csv(或txt)格式的配置文件
- c# - 为什么 ApiAuthorization 在 .NET 5 中不起作用
- python - 变形金刚:如何使用抱脸EncoderDecoderModel做机器翻译任务?