2

テストのために 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().expectsdb

TypeError: Object [object Object] has no method 'expects'

期待される動作を設定する正しい方法は何ですか? さらに、同じ関数に対して複数の動作をテストするにはどうすればよいですか? テストの期待に応じて、各テスト内でこれを行う必要がありますか?

4

1 に答える 1

2

これexecuteは、オブジェクトの一部でqueryあり、データベース自体ではないためです。

https://github.com/mariano/node-db-mysql#quick-start

于 2013-10-29T20:23:34.143 に答える