2012-11-03 40 views
0

我有這樣一個測試:如何在TestNG中的每個測試之前防止清理db的測試?

@RunWith(SpringJUnit4ClassRunner.class), 
@ContextConfiguration(locations = { "file:war/WEB-INF/application-context.xml" }) 
@Transactional 
public class ServiceImplTest extends AbstractTestNGSpringContextTests 
{ 
    @Autowired 
    private Service service; 

    @Test 
    @Rollback(false) 
    public void testCreate() 
    { 
     ..... 
     //save an entity to table_A 
     service.save(a); 
    } 
} 

似乎表-A將每個測試運行前進行清理(沒有的roolback試驗後跑了),因爲每次測試後,表中的所有舊的數據條目清理後,只剩下新的插入條目。如何防止這種「清潔」行爲?

回答

1

默認行爲是回滾測試上下文中的事務。您可以在測試方法上使用@Rollback(false)批註覆蓋此行爲,以不回滾在特定測試期間對數據庫所做的更改。

也就是說,建議每個測試用例都是獨立的,並且應該有自己的場景設置,場景執行和場景拆除。否則,如果測試之間存在相互依賴關係,測試失敗行爲將很難分析。

相關問題