Node.js中mySQL数据库的单元测试与模拟

Node.js中mySQL数据库的单元测试与模拟,mysql,node.js,unit-testing,sqlite,sequelize.js,Mysql,Node.js,Unit Testing,Sqlite,Sequelize.js,在Node.js API中,我使用连接到mySQL数据库。我用的是ORM。我想对每个与数据库交互的微服务进行单元测试 显然,在测试期间,我不想创建真正的数据库连接,因为单元测试不应该依赖于数据库连接之类的依赖项。相反,我想模拟它,使用内存中或磁盘上的数据库,如 我已尝试将SQL转储迁移到,但由于转储与不兼容,因此出现错误。数据集的大小适中 您能推荐一种方法吗?一种方法是使用内存表中的mysql。这将非常快,就像sqlite3 其他方法是创建迁移文件(我使用knex.js),而不是转储,而是创建种

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

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

我已尝试将SQL转储迁移到,但由于转储与不兼容,因此出现错误。数据集的大小适中


您能推荐一种方法吗?

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


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

内存表中mysql将使用哪个Node.js模块?看起来promise mysql不支持此功能。检查我最终将SQL数据库转储到CSV文件中,然后使用磁盘数据库将CSV文件加载到sqlite3中。它适用于较小的数据集。要点如下: