テストのために Node.js の Mocha で Sinon を使用してデータベースをモックしようとしています。私は次のことを試しました:
var sinon = require('sinon');
var mysql = require('db-mysql');
beforeEach(function() {
var db = sinon.mock(mysql);
db.expects('execute');
});
しかし、私は次のエラーが発生し続けます:TypeError: Attempted to wrap undefined property execute as function
これは、データベース インスタンスではなく、クラスをモックしていると想定しました。そのため、代わりに実行してインスタンスをモックしましたvar db = sinon.mock(new mysql.Database());
。私がそれをしたとき、引数が何であれ、anddb-mysql
など、インスタンスの有効なメソッドはすべて渡されます。私は行動を設定することができません。動作を設定するために、呼び出しを試みていますが、次のエラーが発生します。db.connect()
db.query()
.expects
db
TypeError: Object [object Object] has no method 'expects'
期待される動作を設定する正しい方法は何ですか? さらに、同じ関数に対して複数の動作をテストするにはどうすればよいですか? テストの期待に応じて、各テスト内でこれを行う必要がありますか?