java的單元測試和集成spring單元測試 java的單元測試和集成spring單元測試

java的單元測試和集成spring單元測試


在我們編寫項目過程中,經常會需要進行代碼測試,那是不是在編寫一個main方法之後,然後編寫各種的測試代碼。這樣做,顯然是不合適的也是很不專業的。那怎麼辦呢?今天我們來聊下junit(單元測試)。

       爲了後期測試基於spring的單元測試,我們直接新建spring工程。

新建之後,我們先講一般在java項目中怎麼去做單元測試。

我們先定義一個實體User

在service包中新建一個接口,在接口中定義一個方法,方法的返回值就是返回一個用戶對象

有有了接口,對應這我們去編寫它的實現類

這裏面就是一個簡單的業務邏輯,如果id爲1則返回一個User對象,否則返回一個空值。在真實的項目中,這邊肯定不是這麼簡單的業務,它對應着的肯定是調用持久層相關的方法,進行業務邏輯的實現。我們這邊只是爲了講解單元測試,所以例子相對簡單。

service實現已經寫好,那我們下步做的事情就是對它進行單元測試。

首先,新建測試類

我們這邊新建跟src一樣類型的源文件,名字取爲test。爲什麼這麼做?也就是這樣做的好處是什麼?1.層次清晰,項目代碼跟測試代碼分開,條目很清晰。2.方便管理。

新建好test源包之後,我們再來新建測試類。怎麼新建呢?鼠標右擊你要測試的類,點擊new按鈕,再點擊右側的other,在搜索框中輸入junit。選擇Junit Test Case,點擊next,出現如下界面

點擊Browse按鈕選擇,我們新建的test源目錄,勾選junit4

點擊next,它會自動掃描你測試類中所有的方法。



選中你想測試的方法,點擊finish。

由此我們的單元測試新建就基本完成了。

注意:我們這邊引用的是junit4,那有些小夥伴加的junit3。那他們的區別是什麼呢?junit3需要繼承TestCase這個類,而我們junit4不需要。



import static org.junit.Assert.*;    斷言(不詳解,可百度)

基本註解
    @Test:將一個普通的方法修飾成爲一個測試方法,可以接受異常
            @Test(expected=XX.class)  接受異常
            @Test(timeout=毫秒)   定時結束
    @BeforClass:它會在所有的方法運行前被執行,只執行一次,static修飾,用來加載配置文件
    @AfterClass:它會在所有的方法運行結束後被執行,static修飾,用來釋放資源
    @Before:會在每一個測試方法被運行前執行一次
    @After:會在每一個測試方法運行後被執行
    @Ignore:所修飾的方法會被測試運行器忽略
    @RunWith:可以更改測試運行器 只要你的測試器繼承org.junit.runner.Runner

演示如下:


右擊運行選擇Junit Test

顯示結果:


那下面我們來結合案例來測試下我們的簡單Servcie


雙擊我們要測試的方法名,右擊運行Junit Test,首先測試面板不報錯。綠色代表程序無錯。紅色代表程序出錯,根據出錯信息,查找錯誤所在地,然後進行修改。

左邊的Runs:1/1 表示你運行了幾個Test測試方法。 Errors:0 表示有多少個錯誤。Failures:0 表示使用斷言的時候,爲期望我達到的值的方法有幾個。


控制檯打印結果


至此我們普通的單元測試基本用法已經講完。

那基於spring的單元測試怎麼弄呢?(這邊講解是針對有spring基礎的人羣)

首先加載spring的jar包

spring-test-4.0.4.RELEASE(注意版本)

commons-logging-1.2.jar

在applicationContext.xml中,掃描service實現包

<context:component-scan base-package="service.impl"></context:component-scan>

在UserServiceImpl實現類上使用springmvc 註解@Service("userService")

編寫spring單元測試,點擊運行。


@RunWith(SpringJUnit4ClassRunner.class)  上面已做介紹。

@ContextConfiguration(locations={"classpath:applicationContext.xml"})加載配置文件,locations參數是一個數組,可以加載多個,配置文件。

@Resource 自動注入Ioc容器的對應的bean。

@Test 我們的測試方法。


junit的套件測試:

當我們新建了大量的測試類,我們不可能當程序出現問的時候,再一個一個的打開類然後點擊一個一個的方法吧。那這邊就可以用到junit的套件測試。

在我們的測試包中,點擊右擊新建Junit Test Suit,選擇我們所有的測試類,點擊finish


點擊運行即可,就達到我們一次測試所有測試類的目的了。

當然,junit 還有很多強大的功能,比如多參數測試等等。。。希望各位小夥伴能夠愉快的玩耍,此次講解只是最基礎的用法。大神繞過。。。

但是,我們junit也不是萬能的,使用junit進行單元測試,只是證明了你的程序無錯,並沒有證明你的程序就是對的。

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