Sinon不要模仿db-mysql Node.js库

我试图在Node.js中使用Sinon和Mocha来模拟我的数据库进行testing。 我已经尝试了以下内容:

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());嘲笑实例var db = sinon.mock(new mysql.Database()); 代替。 当我这样做的时候,那么db-mysql实例的所有有效方法都会传递,比如db.connect()db.query() ,不pipe参数是什么。 我无法设置行为。 为了设置行为,我试图在db上调用.expects但是我得到以下错误:

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

什么是设定预期行为的正确方法? 此外,如何testing同一function的几种行为? 我是否需要根据testing的期望在每个testing中做到这一点?

这是因为executequery对象的一部分,而不是数据库本身。

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