mysql - Node.js 中的单元测试和模拟 mySQL 数据库

标签 mysql node.js unit-testing sqlite sequelize.js

在我的 Node.js API 中,我使用 promise-mysql 连接到 mySQL 数据库.我正在使用 Sequelize作为 ORM。我想对与数据库交互的每个微服务进行单元测试。

显然在测试期间,我不想创建真正的数据库连接,因为单元测试不应该依赖于数据库连接等依赖项。相反,我想模拟它,使用内存或磁盘数据库,如 sqlite3 .

我已经尝试将 SQL 转储迁移到 sqlite3但我收到错误消息,因为转储与 sqlite3 不兼容.数据集的大小适中。

你能推荐一种方法吗?

最佳答案

一种方法是在内存表中使用mysql。这将像 sqlite3 一样非常快。

其他方法是创建迁移文件(我使用 knex.js)而不是转储,而是创建种子文件。

关于mysql - Node.js 中的单元测试和模拟 mySQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43382636/

相关文章:

php - 每次获取相同值时,Mysql 查询都会运行 COUNT

php - 如何检查电子邮件是否已经发送

java - 缺少 "Run as JUnit Test"

java - 使用 powerMockito 在 Runnable 中模拟 new()

Mysql 在大表上性能缓慢

php - 尝试实现 "Like"功能和 "Wishlist"功能。两者都有 1 个中间表?

javascript - Node + Express + mongoose 查询认证

javascript - 引用错误 : fetch is not defined

node.js - 在docker上部署Node.js代码的最佳方法,如何自动安装Node_modules?

javascript - 如何配置 mocha 以递归方式查找所有测试文件?