在 TypeORM 中使用事务进行测试

Eze*_*iel 9 typeorm

在 Rails 上,每个测试用例都会创建一个ActiveRecord事务,它允许测试所有内容,然后将数据库恢复到原始状态,而不必删除所有表或可能影响播种器等的任何类似操作。是否可以执行类似的操作这在 TypeORM 上吗?据我所知,记录事务的工作方式的主要问题是对另一个方法的调用不会使用创建的事务,但我希望我错过了一些其他实现它的方法。

谢谢!

vin*_*uza 8

我和你有着完全相同的期望。来自 Rails 和 Spring,我期望进行事务测试,但没有直接从 Typeorm 找到解决方案。

在测试期间很难重用相同的事务,因为连接类总是为每个数据库命令或事务创建一个新的 QueryRunner。深入研究 TypeORM,我发现的解决方案是对创建查询运行器的方法进行猴子修补,以便在测试期间重用它。我创建这个库是为了在多个项目中重用此代码:https://github.com/viniciusjssouza/typeorm-transactional-tests