Day11-2 JUnit、Spring集成JUnit、SpringJDBCTemplate和Spring-MyBatis

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使用。

 Spring-MyBatis

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章