我正在使用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()