java ssh 框架下 利用junit4 spring-test進行單元測試

ssh框架下  因爲bean實列 都交給spring 管理,要作單元測試就比較苦難,junit4 引入註解方便不少;java

1. 加入依賴包

  使用Spring的測試框架須要加入如下依賴包:spring

  • JUnit 4 (官方下載:http://www.junit.org/
  • Spring Test (Spring框架中的test包)
  • Spring 相關其餘依賴包(再也不贅述了,就是context等包)

2. 建立測試源目錄和包

  在此,推薦建立一個和src平級的源文件目錄,由於src內的類都是爲往後產品準備的,而此處的類僅僅用於測試。而包的名稱能夠和src中的目錄同名,這樣因爲在test源目錄(source file),因此不會有衝突,並且名稱又如出一轍,更方便檢索。app

3. 建立測試類

  建立一個測試用的類,推薦名稱爲 「被測試類名稱 + Test」。框架

  測試類應該繼承與 AbstractJUnit4SpringContextTests 或 AbstractTransactionalJUnit4SpringContextTestsssh

  對於 AbstractJUnit4springcontextTests 和 AbstractTransactionalJUnit4SpringContextTests 類的選擇:post

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

<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>

  若是沒有添加上述bean,將會拋出NoSuchBeanDefinitionException,指明 No bean named 'transactionManager' is definded.
測試

4. 配置測試類

  添加以下內容在class前,用於配置applicationContext.xml文件的位置。spa

@RunWith(SpringJUnit4ClassRunner.class)

@ContextConfiguration(locations={"classpath:/config/applicationContext-*.xml","classpath:/config/applicationContext-beans-*.xml","classpath:/config/applicationContext-beans.xml"}).net

5. 建立測試方法

  建立測試用方法,推薦名稱爲 「被測方法名稱+ Test」。

  測試方法上方加入 @Test

6. 經過JUnit 4 執行

  右鍵方法名,選擇則「Run As」→「JUnit Test」便可

 package com.zjpost.bank.service;
import javax.annotation.Resource;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"classpath:/config/applicationContext-*.xml","classpath:/config/applicationContext-beans-*.xml","classpath:/config/applicationContext-beans.xml"})
public class MBankDetailIcbcServiceImplTest extends
AbstractJUnit4SpringContextTests {

@Resource

private MBankDetailIcbcServiceImpl mBankDetailIcbcService;


@Test

public void getBankData(){

mBankDetailIcbcService.getBankData();

}
}

@Resource 能夠指定name  或者tpye 

 

 

 

原文:http://blog.csdn.net/chinadeng/article/details/16860511

相關文章
相關標籤/搜索