我正在使用Node.jsfelixge的node-mysql客户端。我没有使用ORM。
Node.js
node-mysql
我正在用Vows进行测试,并希望能够模拟我的数据库(可能使用Sinon)。由于除之外node-mysql我本身还没有DAL ,因此我不确定如何执行此操作。我的模型大多是带有许多吸气剂的简单CRUD。
关于如何实现此目标的任何想法?
使用sinon,您可以在整个模块上放置一个模拟或存根。例如,假设mysql模块具有一个功能query:
mysql
query
var mock; mock = sinon.mock(require('mysql')) mock.expects('query').with(queryString, queryParams).yields(null, rows);
queryString,queryParams是您期望的输入。rows是您期望的输出。
queryString
queryParams
rows
当您正在测试的类现在需要mysql并调用该query方法时,它将被sinon拦截并验证。
在测试期望部分中,您应该具有:
mock.verify()
在拆解中,您应该将mysql恢复为正常功能:
mock.restore()