Junit的基本使用(详解)
什么是Junit?
Junit是xUnit的一個子集,在c++,paython,java語言中測試框架的名字都不相同
xUnit是一套基于測試驅動開發的測試框架
其中的斷言機制:將程序預期的結果與程序運行的最終結果進行比對,確保對結果的可預知性
java所用的測試工具是Junit,Junit不需要去網上下載,在ecliplse中有:
1.新建一個工程
2.工程右鍵,點擊Properties
3.
4.
5.
6.
7.
這是使用Junit最先要完成的 在完成了這個就進入下一步吧!
來簡單使用一下Junit!
新建一個類:Calculate
package com.fulisha.textjunit;public class Calculate { public int add(int a,int b){return a+b; } public int substract(int a , int b){return a-b; } public int cheng(int a,int b){return a*b; } public int chu(int a, int b){return a/b; }}再新建一個測試類
package com.fulisha.textjunit;import static org.junit.Assert.*;import org.junit.Test;public class CalculateTest {@Testpublic void testAdd(){assertEquals(6,new Calculate().add(3, 3));}@Testpublic void testsubstract(){assertEquals(2,new Calculate().substract(5, 3));}@Testpublic void testcheng(){assertEquals(15,new Calculate().cheng(5, 3));}@Testpublic void testchu(){assertEquals(2,new Calculate().chu(6, 3));} }測試后的結果:
對此進行總結:
1.測試方法上必須使用@Test
2.測試方法必須使用 public void進行修飾
3.新建一個源代碼目錄來存放測試代碼
4.測試類的包應該和被測試類的包一樣
5.測試單元中的每個方法一定要能夠獨立測試,其方法不能有任何依賴
如果,測試的方法多,不想一個個的建立測試方法那么:
1.選擇要測試的方法,右擊New ?選擇other
2.
3.
4.
5.
6.
7.創建結果
package com.fulisha.textjunit;import static org.junit.Assert.*;import org.junit.Test;public class CalculateTest3 {@Testpublic void testAdd() {fail("Not yet implemented");}@Testpublic void testSubstract() {fail("Not yet implemented");}@Testpublic void testCheng() {fail("Not yet implemented");}@Testpublic void testChu() {fail("Not yet implemented");}}再在這個基礎上進行修改測試類方法
在測試中結果中關于Failure和error的解釋
1.Failure 一般由測試單元使用斷言方法判斷失敗引起的,這個報錯,說明測試點發現了問題,即程序輸出的結果和我們預期的不一樣
2.error 是由代碼異常引起的,它可以產生代碼本身的錯誤,也可以是測試代碼中的一個隱藏bug
!!!測試用例不是用來證明你是對的,而是用來證明你沒錯
關于Junit運行流程
package com.fulisha.textjunit;import static org.junit.Assert.*;import org.junit.After; import org.junit.AfterClass; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test;public class JunitFlowText {@BeforeClasspublic static void setUpBeforeClass() throws Exception {System.out.println("this is beforeClasss....");}@AfterClasspublic static void tearDownAfterClass() throws Exception {System.out.println("this is afterClasss....");}@Beforepublic void setUp() throws Exception {System.out.println("this is brfore....");}@Afterpublic void tearDown() throws Exception {System.out.println("this is after....");}@Testpublic void test1() {System.out.println("this is test1....");}@Testpublic void test2() {System.out.println("this is test2....");} }運行結果:
總結:
@BeforeClass
修飾的方法會在所有方法被調用前執行,且該方法時靜態的,所以當測試類被加載后就接著運行它,而且在內存中他只會存在一份實例,他比較適合加載配置文件(針對所有測試,只執行一次 )
@AfterClass
所修飾的方法通常用來對資源管理,如關閉數據庫連接(針對所有測試,只執行一次?)
@Before和@After 會在每個測試方法前后各執行一次
@Test:測試方法,在這里可以測試期望異常和超時時間
@Ignore:忽略的測試方法 ?
總結
以上是生活随笔為你收集整理的Junit的基本使用(详解)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DM500 机器后面天线ANT OUT
- 下一篇: WebSocket实现广播