单元测试不是集成测试,单元测试只是测试一个方法单元,不是测试一整个流程。
单元测试的目标函数主要有三种:
- 有明确的返回值,如上图的add(int one, int another),做单元测试时,只需调用这个函数,验证其返回值是否符合预期结果。
- 这个函数只改变其对象内部的一些属性或者状态,函数本身没有返回值,就验证它所改变的属性和状态。
- 一些函数没有返回值,也没有直接改变哪个值的状态,这就需要验证其行为,比如点击事件。
单元测试用例:
// 待测试类
public class RequestData {
private String url = "https://www.google.com";
private String account;
public String getUrl() {
return url;
}
public String getAccount() {
return account;
}
}
// 测试用例类
public class UnitRequestData {
RequestData requestData;
//在单元测试时,就给目标类的public方法写对应的测试方法。
@Test
public void testRequestUrl() {
requestData = new RequestData();
assertTrue(false); // 条件是否满足
assertNotNull(requestData); // 对象判空
// 验证requestData.getUrl().equals("https://www.baidu.com"),如果不正确,测试不通过
assertEquals(requestData.getUrl(), "https://www.baidu.com");
}
}
以上是一个要测试的类RequestData 和测试用例 UnitRequestData 。在Intellij或Android Studio对类右键->run UnitRequestData ,用例中所有被@Test注解的方法,就会被执行。

测试运行不通过截图

测试通过截图

当然你也可以自动创建测试类
1.第一步:通过AS自带的功能自动创建一个测试类

2.第二步:现在现有的测试类进行测试还创建一个新的测试类

3.第三步:选择要测试的内容

测试注解说明
@Test注解,通过声明这个注解,告诉JUnit我们要测的方法。JUnit4使用Java5中的注解(annotation),以下是JUnit4常用的几个annotation:
- @Before:初始化方法 对于每一个测试方法都要执行一次(注意与BeforeClass区别,后者是对于所有方法执行一次)
- @After:释放资源 对于每一个测试方法都要执行一次(注意与AfterClass区别,后者是对于所有方法执行一次)
- @Test:测试方法,在这里可以测试期望异常和超时时间
- @Test(expected=ArithmeticException.class)检查被测方法是否抛出ArithmeticException异常
- @Ignore:忽略的测试方法
- @BeforeClass:针对所有测试,只执行一次,且必须为static void
- @AfterClass:针对所有测试,只执行一次,且必须为static void
-
一个JUnit4的单元测试用例执行顺序为:
@BeforeClass -> @Before -> @Test -> @After -> @AfterClass; -
每一个测试方法的调用顺序为:
@Before -> @Test -> @After;
网友评论