【发布时间】:2019-03-22 00:29:29
【问题描述】:
我有一个@Transactional 方法,当事务被调用后失败时我必须对其进行测试,例如:
@Service
public class MyService {
@Transactional
public void myMethod() {
// [...] some code I must run in my test, and throw an exception after it has been called but before the transaction is commited in order for the transaction to be rolled back
}
}
这里是测试类:
@RunWith(SpringRunner.class)
@SpringBootTest(classes = MyApp.class)
public class MyServiceTest {
@SpyBean
private MyService myService;
@Test
public void testMyMethod() {
doAnswer(/* some code which would call the real method, then throw an exception in order to cancel the transaction */)
.when(myService).myMethod();
// [...] other code that test other services when that service failed in the transaction but after its real method has been correctly executed
}
}
您能告诉我在我的测试中将什么代码放入/* ... */ 部分吗?
【问题讨论】:
标签: spring-boot mockito spring-test spring-boot-test