我正在尝试在 Node.js 中使用 Sinon 和 Mocha 来模拟我的数据库进行测试。我尝试了以下方法:
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());
来模拟实例。当我这样做时,无论参数是什么,实例的所有有效方法db-mysql
都将通过,例如db.connect()
and 。db.query()
我无法设置行为。要设置行为,我正在尝试调用.expects
,db
但出现以下错误:
TypeError: Object [object Object] has no method 'expects'
设置预期行为的正确方法是什么?此外,我如何测试同一个函数的多个行为?我是否需要根据测试的预期在每次测试中执行此操作?