spring中試用junit4測試
一:加入jar包
<!-- 單元測試 --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>3.2.4.RELEASE</version> </dependency>
二:寫測試類
import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration("classpath:spring-*.xml") public classSSMTest { @Test public void test(){ System.out.println("aa"); } }
解釋下用到的註解:
@RunWith:用於指定junit運行環境,是junit提供給其他框架測試環境接口擴展,為了便於使用spring的依賴註入,spring提供了org.springframework.test.context.junit4.SpringJUnit4ClassRunner作為Junit測試環境
@ContextConfiguration({"classpath:applicationContext.xml","classpath:spring/buyer/applicationContext-service.xml"})
導入配置文件,這裏我的applicationContext配置文件是根據模塊來分類的。如果有多個模塊就引入多個“applicationContext-service.xml”文件。如果所有的都是寫在“applicationContext.xml”中則這樣導入:
@ContextConfiguration(locations = "classpath:applicationContext.xml")
@TransactionConfiguration(transactionManager = "transactionManager", defaultRollback = true)這裏的事務關聯到配置文件中的事務控制器(transactionManager = "transactionManager"),同時指定自動回滾(defaultRollback = true)。這樣做操作的數據才不會汙染數據庫!
@Transactional:這個非常關鍵,如果不加入這個註解配置,事務控制就會完全失效!
spring中試用junit4測試