我正在尝试为异步数据库调用编写单元测试。我正在使用带有ORMnomnom包的NodeJS ,安装为 orm db access 和nodeunit进行单元测试。但它挂起这个简单的测试:
这是代码 test\test1.js
modelsdb = require('../model/model_db')
exports['test db'] = function (test) {
test.expect(1);
console.log('test db');
modelsdb.MyTable.objects.all( function (err, data) {
test.ok(true, "this assertion should pass");
test.done();
console.log('test must finish here!');
});
}
exports.testSomething = function(test){
console.log('testSomething');
test.expect(1);
test.ok(true, "this assertion should pass");
test.done();
};
当我运行这个测试时,所有断言都通过了,我在控制台中看到了我的消息:'test db''test must finish here!' 'testSomething'(意味着 test.done() 到达回调函数内部)但测试没有完成。我需要手动停止它,得到:'进程完成,退出代码 1'。如果我更改为 test.ok(false,""),那么我会得到 AssertionError 但测试也没有完成。如果我删除“test db”并只留下 testSomething 函数 - 测试按预期完成,所有断言都通过了。
我还尝试了基于nodeunit的testpilot包。它给
test1
FAIL : test db
an error occurred during test:
Error: timed out waiting for test
有什么建议么?谢谢。