JUnit
JUnit是基於junit依賴包的一套單元測試框架。
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
由於JUnit的scope通常定義爲test,因此必須在src/test/java目錄中創建JUnit Test Case類型的模板文件,如果創建的是JUnit 3,沒有註解方式,則類需要繼承TestCase類,並且所有方法必須以test開頭。一般創建JUnit 4,默認由五個標記實現。
@BeforeClass 類被調用之前執行一次,要求:@BeforeClass聲明的方法必須是static的
@AfterClass 類被調用之後執行一次,要求:@AfterClass聲明的方法必須是static的
@Before 每個@Test標記的方法調用前執行一次
@After 每個@Test標記的方法調用後執行一次
@Test 標記測試用例,通常一個方法就是一個用例,要求:JUnitTestCase中必須存在至少一個@Test標記的方法,否則執行報錯
JUnit Test Case沒有main方法,執行Run As->JUnit Test後,系統自動找到測試入口。JUnit默認按照@Test標記的方法名稱的排列順序執行,如需控制執行順序,可以通過test01_XXXX的方法命名方式實現。
Spring集成JUnit
Spring集成JUnit主要通過以下依賴包實現:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${org.springframework-version}</version>
</dependency>
應用方式如下:
@RunWith(SpringJUnit4ClassRunner.class)//junit整合spring的測試,開啓了Spring註解
@ContextConfiguration(locations= {"file:src/main/webapp/WEB-INF/spring/spring-thread.xml","classpath:ioc.xml"})//加載核心配置文件,file方式和classpath方式都可以加載,也可以同時使用兩種方式加載多個文件
public class junitTest {...}
Run As -> Run with Jetty:Web主程序的執行方式,主要是執行src/main/java。其執行入口是main方法,配置文件主要定義在web.xml中,包括servlet配置文件和系統監聽的配置文件,通常系統監聽配置文件root-context.xml還可以通過例如<import resource="spring-thread.xml"/>的方式來導入多個配置文件。
Run As -> JUnit Test:JUnit測試程序的執行方式,主要是執行src/test/java。其執行入口由系統自動實現,不需要定義main方法,配置文件主要通過@ContextConfiguration(locations = {"file:src/main/webapp/WEB-INF/spring/spring-db.xml"})語句引入。
SpringJDBCTemplate
SpringJDBCTemplate是Spring對DB連接的更高層封裝,它與dbutils相似,但不是基於dbutils。SpringJDBCTemplate也是基於c3p0和mysql的jdbc驅動,因此必須導入的依賴包有:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
<dependency>
<groupId>c3p0</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.1.2</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${org.springframework-version}</version>
</dependency>
可以將連接參數與ioc配置分離,例如spring-db.xml文件配置c3p0.ComboPooledDataSource和JdbcTemplate的bean,並且引入jdbc.properties文件配置的參數。jdbc.properties文件配置數據庫連接參數,可以存放於src/main/resources,這樣主程序和test程序都可以引用。
Web主程序可以導入spring-db.xml到root-context.xml,JUnit測試程序可以通過@ContextConfiguration導入spring-db.xml使用。