是否可以将每个sequelize测试封装在事务中,并在每个测试结束时回滚?建议用sequelize来实现这一点的方法是什么?
此外,如果测试中的代码也在打开一个事务,它会起作用吗?(嵌套事务)
感谢
我不认为Sequelize支持嵌套事务。
听起来你试图在测试之间保持隔离,这样一个测试中的更改就不会影响另一个测试。我的团队通过在beforeEach
声明中用fixture数据填充测试数据库,并在afterEach
声明中截断受影响的表来实现这一点。使用这种方法,测试运行得相当快。
为了保持测试的有效运行,您可以缩小清理步骤的重点,并将每个describe
块配置为只截断受每个测试块影响的少数表。例如,如果您正在测试User
模型,请在该文件中添加一个afterEach
,该文件只会截断User
表。