1 JUnit導包
JUnit是Java最基礎的測試框架,主要的作用就是斷言。
使用時需要在app的build.gradle文件裏添加依賴,如下所示:
testImplementation "junit:junit:4.12"
使用testImplementation導入的包,則寫的測試用例需要放在test裏面,如下所示
使用androidTestImplementation導入的包,則寫的測試用例需要放在androidTest裏面。
2 Assert類中主要方法
方法名 | 方法描述 |
---|---|
assertEquals | 斷言傳入的預期值與實際值是相等的 |
assertNotEquals | 斷言傳入的預期值與實際值是不相等的 |
assertArrayEquals | 斷言傳入的預期數組與實際數組是相等的 |
assertNull | 斷言傳入的對象是爲空 |
assertNotNull | 斷言傳入的對象是不爲空 |
assertTrue | 斷言條件爲真 |
assertFalse | 斷言條件爲假 |
assertSame | 斷言兩個對象引用同一個對象,相當於“==” |
assertNotSame | 斷言兩個對象引用不同的對象,相當於“!=” |
assertThat | 斷言實際值是否滿足指定的條件 |
注意:上面的每一個方法,都有對應的重載方法,可以在前面加一個String類型的參數,表示如果斷言失敗時的提示。
3 JUnit 中的常用註解
註解名 | 含義 |
---|---|
@Test | 表示此方法爲測試方法 |
@Before | 在每個測試方法前執行,可做初始化操作 |
@After | 在每個測試方法後執行,可做釋放資源操作 |
@Ignore | 忽略的測試方法 |
@BeforeClass | 在類中所有方法前運行。此註解修飾的方法必須是static void |
@AfterClass | 在類中最後運行。此註解修飾的方法必須是static void |
@RunWith | 指定該測試類使用某個運行器 |
@Parameters | 指定測試類的測試數據集合 |
@Rule | 重新制定測試類中方法的行爲 |
@FixMethodOrder | 指定測試類中方法的執行順序 |
4 JUnit簡單使用示例
在目錄main/java/XXX/XXX下編寫一個計算的類Calculater,該類有個add方法,代碼如下:
package com.yds.mainmodule.fragment;
/**
* Created by yds
* on 2019/8/15.
*/
public class Calculater {
public int add(int a,int b){
return a+b;
}
}
然後在test/java/XXX/XXX目錄下編寫一個測試用例,代碼如下:
package com.example.mainmodule;
import com.yds.mainmodule.fragment.Calculater;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
/**
* Created by yds
* on 2019/8/15.
*/
public class CalculaterTest {
private Calculater calculater;
private int a = 3;
private int b = 4;
private int sum = 7;
@Before
public void setUp(){
calculater = new Calculater();
}
@Test
public void testAdd(){
Assert.assertNotNull(calculater);
int result = calculater.add(a,b);
Assert.assertEquals(sum,result);
}
@After
public void tearDown(){
calculater = null;
}
}
結果與預期相等,用例通過。