我有一个单元测试来注册功能。我返回一个承诺,但收到一个错误:
SELECT
*
FROM [employeeName] Where dept In (Select dept From #tbl)
我尝试使用done()函数,异步等待,检查Promise拒绝-没有结果。
我的测试代码如下:
Error: Timeout of 30000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.
已测试控制器的代码:
https://github.com/elszczepano/FindMates-API/blob/master/src/controllers/authController.js
答案 0 :(得分:0)
我解决了! 第一: 我必须将package.json中的超时设置为10000毫秒:
"test": "nyc mocha --require @babel/register --require @babel/polyfill tests/unit/**/*.test.js --timeout 10000"
第二: 我必须与MongoDB数据库建立连接(当然还要在测试后断开连接)。
before(done =>{
mongoose.connect('mongodb://localhost:27017/FindMates', {useNewUrlParser: true });
mongoose.set('useCreateIndex', true);
mongoose.set('useFindAndModify', false);
done();
});
after(done => {
mongoose.disconnect();
done();
});