使用 Sequelize 进行集成测试

gri*_*urd 5 sqlite node.js express sequelize.js

我有一个使用 sequelize 的 Express web api,我想用它进行端到端测试。我希望能够使用内存数据库进行端到端测试,以便我可以在任何我喜欢的机器上运行它。

我使用 mysql 数据库进行开发和生产,但是我正在考虑使用内存中的 sqlite 数据库进行测试,但我不确定将测试数据放入其中的最佳方法是什么。

周围有几个模块,如挤压夹具,但它们似乎都不能只用数据填充数据库,而无需围绕它编写代码来操作和插入它。

这里有没有人使用 sequelize 和 sqlite 进行集成测试,并找到了一种没有所有样板代码的好方法?

Hea*_*ode 4

如果您以这种方式进行测试,那么实际上并不是端到端测试,因为您使用的是不同的数据库。

但是,将 Sequelize 方言更改为 sqlite,然后使用sequelize-fixtures 摄取数据文件有什么问题吗?如果您觉得这太繁重,您可以费力地完成一次,然后保存 sqlite 数据库文件以供将来使用。然后你可以实例化你的 Sequelize 对象

storage: 'path/to/database.sqlite'
Run Code Online (Sandbox Code Playgroud)

无论您做什么或选择什么存储,您都必须做一些工作来为数据库播种。