非同期データベース呼び出しの単体テストを作成しようとしています。私は、ORMnomnomパッケージを orm db アクセスとしてインストールし、単体テスト用にnodeunitを使用して NodeJS を使用しています。しかし、この簡単なテストではハングします:
ここにコード 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
助言がありますか?ありがとう。