JUnit單元測試——學習筆記

JUnit 是用於測試 java程序的一個工具,是在軟件開發中非常重要的技術。

JUnit的用處

這個工具可以針對特定的java程序生成對應的測試程序,在測試程序裏用正確答案和java程序跑出來的答案做對比,一定程度上可以檢驗java程序的正確性。

爲什麼要用JUnit?

我們在編寫程序的時候,常常需要在寫完一個函數或者方法之後,檢驗它的正確性。在最基礎的編程階段時,我們寫的程序通常也不會很複雜,這時候直接把答案輸出來,對比對比就能出結論。但是當我們寫的程序變得越來越複雜的時候,如果還在函數裏面把結果輸出來,之後再去找的時候就會很麻煩,如果這還不是自己寫的程序,就更麻煩了,所以最好就要有一個專門用於測試的程序,這時JUnit就會顯得特別重要。

JUnit在哪?

如果你安裝的java編寫程序是eclipse,這就很好辦,因爲eclipse自帶JUnit,只是不同版本的eclipse把JUnit放在了不同的地方,但是也很好找。

怎麼用JUnit?

  1. 既然是測試工具,那就要有被測試的對象,在學習使用JUnit的時候,可以自己先寫一個簡單的程序,下面是我用來測試的java程序。
package test;

public class JUnitTest {
	public int gcd(int a,int b) {
		  return b==0?a:gcd(b,a%b);
	}
	public int add(int a,int b) {
		return a+b;
	}
}

    2.  在這個包含類的project按右鍵->Properties->Java Build Path->Add Library->JUnit->Next->JUnit5->Finish

這樣就把JUnit需要用到的包導進來了。

    3.  在這個被測試類上按右鍵->New->JUnit Test Case

(沒有直接在菜單裏找到JUnit Test Case的話可以在Other裏找到Java->JUnit->JUnit Test Case,新的版本就需要自己想辦法翻一翻啦。。)然後按Next,就會彈出下面這個框。

勾選setUp,按Next,就會出現下面這個框,勾選想要測試的方法

此時就會生成一個測試文件,如下所示

package test;

import static org.junit.jupiter.api.Assertions.*;

import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;

class JUnitTestTest {

	@BeforeEach
	void setUp() throws Exception {
	}

	@Test
	void testGcd() {
		fail("Not yet implemented");
	}

	@Test
	void testAdd() {
		fail("Not yet implemented");
	}

}

可以看到,生成的文件裏面有幾個標識符,如@BeforeEach和@Test,它們的解釋可以參考https://junit.org/junit5/docs/current/user-guide/

在@Test之後的是測試部分,可以看到,我們之前勾選過的方法都有一個對應的測試方法,裏面的內容需要自己填寫,用assertEquals((正確答案),(調用程序跑出來的結果));去測試。填寫後的代碼如下:

package test;

import static org.junit.jupiter.api.Assertions.*;

import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;

class JUnitTestTest {
	JUnitTest test = new JUnitTest();
	@BeforeEach    
	void setUp() throws Exception {    
		
	}

	@Test    
	void testGcd() {        
		assertEquals(3,test.gcd(3, 9));    
	}

	@Test    
	void testAdd() {        
		assertEquals(12,test.add(3, 9));    
	}

}

    對這個測試類按右鍵->Run As JUnit Test,就會得到這個結果:

    左邊欄會出現一個JUnit的結果:

下面顯示的  Runs:2/2  表示兩個Test都可以運行,Errors:0表示沒有出錯,Failures:0表示沒有運行失敗,這時下面顯示出一個綠色的橫條,表明測試沒有出錯,如果出錯了,下面就會是紅色的橫條,橫條下面就會有各個測試的情況,若某個測試的右下角有一個小小的紅色叉號,表明這個測試出了錯,點擊這個測試,下面的Failure Trace就會顯示出錯誤原因。


這個只是初步的學習,之後對JUnit有了更深一步的理解或者更好的應用的時候再回來更新吧~~

 

 

    

 

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