我应该如何测试同时使用的事务性服务方法(它通过减少值来更新数据库行)?
我已经使用 SpringJunit4ClassRunner 设置了一个 JUnit 测试类,并且组件是 @autowired。
只是产生将调用该方法的线程似乎不起作用。我不确定这是否与 Spring 代理机制有关。
我想要实现的是创建一种情况,其中两个线程同时在测试方法“内部”,另一个线程将失败并回滚。例如,行值为 3,两个方法调用都试图将值减 2;如果该方法不起作用,则该值为-1,这是非法的。但我希望这两个调用都失败并回滚,或者尝试更新它的一个失败,而不是另一个失败。
这甚至可能吗?