小编典典

您如何在Node.js中模拟MySQL(没有ORM)?

mysql

我正在使用Node.jsfelixge的node-mysql客户端。我没有使用ORM。

我正在用Vows进行测试,并且希望能够使用Sinon来模拟我的数据库。由于除之外node-mysql我本身还没有DAL
,因此我不确定如何执行此操作。我的模型大多是带有很多吸气剂的简单CRUD。

关于如何做到这一点的任何想法?


阅读 300

收藏
2020-05-17

共1个答案

小编典典

使用sinon,您可以在整个模块上放置一个模拟或存根。例如,假设mysql模块具有一个功能query

var mock;

mock = sinon.mock(require('mysql'))
mock.expects('query').with(queryString, queryParams).yields(null, rows);

queryStringqueryParams是您期望的输入。rows是您期望的输出。

当您的被测类现在需要mysql并调用该query方法时,它将被sinon拦截并验证。

在测试期望部分中,您应该具有:

mock.verify()

并在拆解中将mysql恢复为正常功能:

mock.restore()
2020-05-17