Sequelize事务测试

时间:2016-07-26 11:12:44

标签: sequelize.js

是否可以在事务中包装每个sequelize测试并在每次测试结束时回滚?使用sequelize实现这个的推荐方法是什么?

如果被测代码也在打开一个事务?(嵌套事务)

,它也会工作吗?

由于

1 个答案:

答案 0 :(得分:2)

我不相信Sequelize支持嵌套交易。

听起来您正试图在测试之间保持隔离,以便一次测试中的更改不会影响另一次测试。我的团队通过在beforeEach声明中使用fixture数据填充测试数据库并在afterEach声明中截断受影响的表来实现此目的。使用这种方法可以很快地进行测试。

为了使测试有效运行,您可以缩小清理步骤的重点,并将每个describe块配置为仅截断受每个测试块影响的少数几个表。例如,如果您要测试User模型,请向该文件添加afterEach,该文件只会截断User表。