java中的Junit單元測試
阿新 • • 發佈:2020-09-06
什麼是測試??
測試的分類??
黑盒測試:不需要些程式碼,給輸入值,看程式是否能夠輸出期望的值
白盒測試:需要寫程式碼,關注程式的具體的執行流程
Junit單元測試-百合測試
我們以前的測試:
要測試這個類的方法ok不
public class Calculator { public int add(int a,int b){ return a + b; } public int sub(int a,int b){ return a - b; } }
/** * 以前的測試: * 建立物件去一個個呼叫方法。 * 缺點: * 一個main方法只能測試一個功能,要註釋掉之前的程式碼*/ public class CalculatorTest { public static void main(String[] args) { Calculator calculator = new Calculator(); int re = calculator.add(1, 23); System.out.println(re); int sub = calculator.sub(23, 1); System.out.println(sub); } }
使用junit測試方法框架後
/*** 步驟: * 1定義一個測試類(測試用例), * 測試類名=被測試的類名Test CalculateorTest * 測試類所在的包名:xxx.xx.xx.test cn.quan.test * 2定義測試方方法: * 方法名:test測試的方法名 testAdd() * 返回值:void * 引數列表:空參 * 3給方法加註解@Test---使方法獨立執行 * 4判定結果: * 一般我們會使用斷言操作來處理結果: * Assert.assertEquals(期望的結果,運算的結果)*/
public class CalculatorTest { @Test public void testAdd(){ System.out.println("done"); Calculator calculator = new Calculator(); int add = calculator.add(1, 34); System.out.println(add); //斷言 斷言結果為 35 Assert.assertEquals(34,add); } @Test public void testSub(){ Calculator calculator = new Calculator(); int sub = calculator.sub(1, 4); System.out.println(sub); Assert.assertEquals(-3,sub); } }
執行第一個測試結果:---斷言不成功
執行第二個測試結果:---斷言成功
@Before
修飾的方法會在測試方法之前被自動執行
@After
修飾的方法會在測試方法執行之後自動被執行
例子:
public class CalculatorTest { /** * 初始化方法: * 用於資源申請,所有測試方法在執行之前都會先執行方法 */ @Before public void init(){ System.out.println("統一開始"); } /** * 釋放資源: * 在所有測試方法執行完後,都會自動執行改方法 */ @After public void close(){ System.out.println("統一結束了"); } @Test public void testSub(){ Calculator calculator = new Calculator(); int sub = calculator.sub(1, 4); System.out.println(sub); System.out.println("Test指定之中"); Assert.assertEquals(-3,sub); } }
輸出結果:
統一開始 -3 統一結束了