1 JUnit导包
JUnit是Java最基础的测试框架,主要的作用就是断言。
使用时需要在app的build.gradle文件里添加依赖,如下所示:
testImplementation "junit:junit:4.12"
使用testImplementation导入的包,则写的测试用例需要放在test里面,如下所示
![](https://img.haomeiwen.com/i7814276/21a4fb9febbf53ac.png)
使用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;
}
}
结果与预期相等,用例通过。
网友评论