@Transactional(propagation = Propagation.REQUIRED)
public void exe() {
try {
Reserve reserveInfo = newTransactionTemplate.execute(new TransactionCallback<Reserve>() {
@Override
public Reserve doInTransaction(TransactionStatus status) {
return reserveService.callReserve(reserveDetails);
}
});
if(reserveInfo != null && reserveInfo.getStatus()=="DONE") {
someOtherService.doSomething();
}
} finally {
if(reserveInfo!= null && reserveInfo.getStatus().equals("DONE")){
final String id = reserveInfo.getId();
Release releaseInfo = newTransactionTemplate.execute(new TransactionCallback<Release>() {
@Override
public Release doInTransaction(TransactionStatus status) {
return reserveService.callRelease(id);
}
});
if (releaseInfo.getStatus() != "RELEASED") {
throw new RuntimeException("Problem in releaseing");
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是我想测试的示例代码.我在网上测试匿名课时找不到多少.我想测试exe()方法,通过newTransactionTemplate.execute方法并模拟对reserveService.callReserve(reserveDetails)的调用.
任何人都可以建议我如何测试这种情况?
这是我试图测试的示例:
private SomeService …Run Code Online (Sandbox Code Playgroud)