spring+TestNG 單元測試

在寫單元測試的時候,一般是對數據庫進行增刪改查的操作,這個時候,如果之前刪除了某條記錄,自然後面的程序就找不到這條記錄了,所以可以通過配置spring的事務管理或者測試框架來回滾,減少工作量。使用的數據庫是postgreSQL和MySQL。

1、創建測試類
創建一個測試用的類,推薦名稱爲 “被測試類名稱 + Test”。

  測試類應該繼承與 AbstractJUnit4SpringContextTests 或 AbstractTransactionalJUnit4SpringContextTests

  對於 AbstractJUnit4springcontextTests 和 AbstractTransactionalJUnit4SpringContextTests 類的選擇:

  如果再你的測試類中,需要用到事務管理(比如要在測試結果出來之後回滾測試內容),就可以使用AbstractTransactionalJUnit4SpringTests類。事務管理的使用方法和正常使用Spring事務管理是一樣的。再此需要注意的是,如果想要使用聲明式事務管理,即使用AbstractTransactionalJUnitSpringContextTests類,請在applicationContext.xml文件中加入transactionManager bean:

@Bean
    public DataSourceTransactionManager transactionManager(){
        DataSourceTransactionManager transactionManager = new DataSourceTransactionManager(dataSource());
        return transactionManager;
    }

  如果沒有添加上述bean,將會拋出NoSuchBeanDefinitionException,指明 No bean named ‘transactionManager’ is definded
  
 Spring4.2之前的方法

@TransactionConfiguration(transactionManager = "txManager", defaultRollback = true)  

Spring 4.2之後的方法

@ContextConfiguration(locations = {"classpath:spring.xml"})
@Rollback//回滾數據庫
public class BaseRepositoryTest extends AbstractTransactionalTestNGSpringContextTests {
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章