使用 Sequelize 进行集成测试
Posted
技术标签:
【中文标题】使用 Sequelize 进行集成测试【英文标题】:Integration testing with Sequelize 【发布时间】:2015-06-14 20:35:09 【问题描述】:我有一个使用 sequelize 的 Express web api,我想用它进行端到端测试。我希望能够使用内存数据库进行端到端测试,这样我就可以在任何我喜欢的机器上运行它。
我使用 mysql 数据库进行开发和生产,但是我正在考虑使用内存中的 sqlite 数据库进行测试,但我不确定将测试数据导入其中的最佳方法是什么。
周围有几个模块,例如 squelize-fixtures,但它们似乎都不能只用数据填充数据库,而无需围绕它编写代码来操作和插入它。
这里有没有人用 sequelize 和 sqlite 进行集成测试,并找到了一种无需所有样板代码的好方法?
【问题讨论】:
【参考方案1】:如果您以这种方式进行测试,它实际上不会是端到端测试,因为您使用的是不同的数据库。
但是,将 Sequelize 方言更改为 sqlite 然后使用 sequelize-fixtures 提取数据文件有什么问题?如果你觉得这太繁重了,你可以通过它一次,然后保存 sqlite db 文件以备将来使用。然后,您将使用
实例化您的 Sequelize 对象storage: 'path/to/database.sqlite'
无论您做什么或选择什么存储,您都必须做一些工作来为您的数据库播种。
【讨论】:
以上是关于使用 Sequelize 进行集成测试的主要内容,如果未能解决你的问题,请参考以下文章