2012-08-05 55 views
6

我作爲單元測試運行,即使在春季3.1中不使用@rollback,它也會自動返回。 我的測試看起來像@Transactional是否會在Spring 3中自動回滾事務?

@RunWith(SpringJUnit4ClassRunner.class) 
@ContextConfiguration(locations = { "classpath:application-context.xml" }) 
public class PersonServiceTest { 

    @Test 
    @Transactional 
    public void savePerson() { 
      Person person = createPerson(); 
      personService.savePerson(person); 
    } 
} 

回滾行爲是否默認設置?

+0

TL; DR:是的,這是默認設置。 – 2015-08-15 03:21:35

回答

13

默認SpringJUnit4ClassRunner會自動回滾事務。

爲了消除影響,請在您的測試課程上使用@TransactionConfiguration(defaultRollback=false)或在每個測試中使用@Rollback(false)

+0

...在Spring 5上,'@ Commit'代替'@Rollback(false)' – 2018-03-08 19:04:22