【发布时间】:2018-03-27 08:18:35
【问题描述】:
我是自动化测试的新手,想知道如何为数据库编写测试。我现在正在做的项目是在 Node.JS 环境中运行带有 Sequelize 作为 ORM 的 PostgreSQL。如果重要的话,我现在也使用 Jest 作为测试库。
【问题讨论】:
-
可以这么说,您不应该“为数据库编写测试”。您应该为自己的代码编写测试。然后,该代码可以与该数据库交互。当您处于测试模式时,您的代码将连接到一个单独的测试数据库,这样您的测试就不会更改开发数据库中的数据。
-
FWIW - 在为使用 sequelize 的代码编写测试时,我通常在 sqlite 中为我的“真实”数据库分包。如果有用的话,我可以举一个 Mocha 的例子。
-
感谢您的信息! @doublesharp 一个例子真的很有帮助,非常感谢!所以如果我没看错,我应该有一个“模拟”数据库,我运行我的函数来读取/写入/更新/删除请求并测试它的响应。有没有一种简单的方法可以将我的自动化测试指向我的“模拟”数据库?
-
Mocking 有点不同 - 你仍然想使用
sequelize但换出sqlite作为内存实现。模拟意味着您将一个模块换成另一个模块 - 例如,我使用ioredis在生产中访问 Redis,但fakeredis用于测试。我模拟了ioredis,这样当你require()时,你会得到fakeredis。
标签: node.js postgresql testing sequelize.js jestjs