我要测试创建用户,因此在连接到数据库之后,我想删除所有测试过的用户,然后,我要为测试创建新用户。(Mocha) test_helper.js
var data = {
"key1": "value1",
"key2": "value2",
"key3": "value3",
};
var myMap = Map<String, dynamic>.from(data);
print(myMap);
create_test.js
mongoose.connect(uri, { useNewUrlParser: true, useUnifiedTopology: true });
mongoose.connection
.once('open', () => {
console.log("connected")
})
.on('error', (error) => {
console.warn('Warning', error)
});
beforeEach((done) => {
mongoose.connection.collections.users.drop(() => {
done();
}
)
})
我遇到下一个错误 错误:超时超过2000毫秒。对于异步测试和挂钩,请确保调用了“ done()”;如果返回了Promise,请确保它可以解决。
我想念什么?
答案 0 :(得分:0)
我的答案之前有一些主题:
异步编码: 如果您不知道/不确定它是如何工作的,我建议您停止并了解它:回调,承诺,异步/等待。
测试: 基本上,流程是:创建一些方案并断言某种情况,例如附加的代码。我创建了一个用户,并测试了它是否真的有效。
测试异步代码:在您了解回调函数之后,您可以了解到done()是允许完成当前异步操作的回调函数。功能并传递到下一个异步。功能。
testUser.save()
返回一个Promise,而您没有处理它。
...
testUser.save().then(()=>{
assert(testUser.isNew === false)
done();
}
...
它应该可以工作,但是如果您要一个接一个地测试某些场景,则应该进行处理。
describe('Creating', () => {
it('some test', (done) => {
// some logic
done()
}
it('another test', (done) => {
// some logic
done()
}
});
});