【发布时间】:2019-09-06 12:35:32
【问题描述】:
幻读和脏读是初学者最大的陷阱之一,但是可以通过设置事务的隔离级别来管理它们。
您可能会争辩说它们可以由 spring-boot 控制。所以没有必要进行测试。但据我所知,并非所有数据库都支持隔离级别。那么,我们如何在 springboot 的测试中模拟它们呢?
【问题讨论】:
-
所以你想将隔离设置为 TRANSACTION_READ_UNCOMMITTED?
-
@SimonMartinelli 不,我想写一个测试来模拟幻读或脏读的问题。
-
我不明白你想测试什么。你说:“幻读和脏读是初学者最大的陷阱之一”你为什么这么认为?恕我直言,这不是真的,因为您必须更改隔离级别。这不是初学者会做的事
-
@SimonMartinelli 这正是我这么说的原因,因为初学者并不了解它们。结果,他们以错误的方式开发他们的应用程序,这给他们带来了严重的问题。我知道您可以设置隔离级别,但我说的不是设置它,而是关于我们如何在测试中提供这样的情况发生并针对它测试我们的代码。
-
如果不将隔离级别设置为 TRANSACTION_READ_UNCOMMITTED,就不可能进入这种情况。默认是 READ_COMMITED 然后你就没有这个问题了
标签: spring spring-boot testing spring-data