当前位置: 首页 > 面试题库 >

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

姚洲
2023-03-14
问题内容

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

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

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


问题答案:

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


 类似资料:
  • 问题内容: 我正在使用felixge的客户端。我没有使用ORM。 我正在用Vows进行测试,并希望能够模拟我的数据库(可能使用Sinon)。由于除之外我本身还没有DAL ,因此我不确定如何执行此操作。我的模型大多是带有许多吸气剂的简单CRUD。 关于如何实现此目标的任何想法? 问题答案: 使用sinon,您可以在整个模块上放置一个模拟或存根。例如,假设模块具有一个功能: ,是您期望的输入。是您期望

  • 问题内容: 有没有一种简单的方法可以在模拟器内部模拟低内存?我有兴趣执行类似于此帖子的资源清理 问题答案: 从外壳调用命令。 这会将当前内存限制设置为10000 Kb,这样以后从此Shell调用的所有应用程序将无法访问更多内存。

  • 在虚拟环境之外,它运行良好。但是在虚拟环境中,MySQL Python连接器没有导入。我正在做覆盆子皮。下面是我提到的内容。我该怎么做才能修好它? =========================================================================== ==================================================

  • 问题内容: 我正在使用Google App Engine框架编写带有模拟对象的测试用例。这在此处记录。我已经使用模拟数据库()使数据存储区测试正常运行,这使我的测试用例可以在快速,新鲜的数据库上运行,并针对每个测试用例进行了重新初始化。现在,我要测试取决于当前用户的功能。 还有另一个名为的测试平台服务,可以激活该服务以获取“伪造”用户服务。不幸的是,这似乎没有任何文档。我正在像这样激活和使用它:

  • 问题内容: 我有一些程序在评估病情后想得到某种确认。 例如,pusedocode就像 我应该如何在MySQL中做到这一点? 问题答案: 如果您不想两次将文本用作列标题和值,请使用以下stmt!

  • 问题内容: 这似乎是MySQL没有数组变量。我应该怎么用呢? 似乎提出了两种选择: set-type标 量表 和 临时表 。我链接的问题暗示了前者。但是,使用这些变量而不是数组变量是一种好习惯吗?或者,如果我使用集合,基于集合的成语等效于什么? 问题答案: 好吧,我一直在使用临时表而不是数组变量。不是最大的解决方案,但它可以工作。 请注意,您不需要正式定义它们的字段,只需使用SELECT创建它们: