node.js - 如何测试 jest + sequelize?
问题描述
晚上好,我正在尝试编写集成测试。但是,我坚持使用数据库,当我这样做时sequelize.sync({ force: true })
,我得到了一些错误,它是随机的。
现在,我所有的测试都是这样的:
const CategoryModel = require('../CategoryModel'); // sequelize model
beforeAll(async () => {
await CategoryModel.sync({ force: true });
await CategoryModel.bulkCreate([ /* data for insert */ ]);
});
// then there are tests
Sequelize 行为怪异,随机抛出错误:
1. bulkCreate() - [SequelizeDatabaseError]: Table 'shop_test.categories' does not exist
2. bulkCreate() - [SequelizeUniqueConstraintError]: Validation error. (Duplicate entry 'spoons' for key 'categories.slug')
这怎么可能?因为.sync()
使用{ force: true }
删除表的方法,然后使用模式创建新表
我用选项开玩笑:
"test": "jest --runInBand --detectOpenHandles"
我究竟做错了什么?
解决方案
推荐阅读
- c# - 如何在声明之前使用本地对象?
- python - 我试图弄清楚如何添加到字典列表,而不是创建字典列表列表
- c++ - vscode中的C++:错误:没有匹配的构造函数用于初始化'std :: thread'
- dart - 将文本传递给 RaisedButton OnTap - Flutter
- java - 将多行 Json 用户输入格式化为单行 Json 字符串以传递给 Java 控制台应用程序中的 JsonParser
- mongodb - 在 MongoDB 中加入查询
- c++ - 虚幻引擎 4.21.2 和 Squareys CISQLite3 插件编译问题
- python - 在 Tensorboard 上显示 PR 曲线
- python - 如何为股票价格添加新列“Next_day_close”
- excel - 使用单元格值创建命名范围/表格