在 Rails 上,每个测试用例都会创建一个 ActiveRecord 事务,它允许测试所有内容,然后将数据库恢复到原始状态,而不必删除所有表或任何可能影响播种机等的内容。
可以在 Typeorm 上做这样的事情吗?
从我所看到的,交易记录工作方式的主要问题是对另一个方法的调用不会使用创建的交易,但我希望我错过了其他一些实现它的方式。
谢谢!
最佳答案
我和你的期望完全一样。来自 Rails 和 Spring,我希望进行事务测试,但没有直接从 Typeorm 找到解决方案。
在测试期间很难重用相同的事务,因为连接类总是为每个数据库命令或事务创建一个新的 QueryRunner。深入 TypeORM,我发现的解决方案是修补创建查询运行程序的方法,以便在测试期间重用它。我创建了这个库来在几个项目中重用这段代码: https://github.com/viniciusjssouza/typeorm-transactional-tests 。
关于typeorm - 在 Typeorm 中使用事务进行测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48385604/