是否可以在事务中包装每个sequelize测试并在每次测试结束时回滚?使用sequelize实现这个的推荐方法是什么?
如果被测代码也在打开一个事务?(嵌套事务)
,它也会工作吗?由于
答案 0 :(得分:2)
我不相信Sequelize支持嵌套交易。
听起来您正试图在测试之间保持隔离,以便一次测试中的更改不会影响另一次测试。我的团队通过在beforeEach
声明中使用fixture数据填充测试数据库并在afterEach
声明中截断受影响的表来实现此目的。使用这种方法可以很快地进行测试。
为了使测试有效运行,您可以缩小清理步骤的重点,并将每个describe
块配置为仅截断受每个测试块影响的少数几个表。例如,如果您要测试User
模型,请向该文件添加afterEach
,该文件只会截断User
表。