美文网首页
Android单元测试

Android单元测试

作者: mouekz | 来源:发表于2018-03-09 16:42 被阅读0次

单元测试不是集成测试,单元测试只是测试一个方法单元,不是测试一整个流程。
单元测试的目标函数主要有三种:

  • 有明确的返回值,如上图的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注解的方法,就会被执行。


image.png

测试运行不通过截图


image.png
测试通过截图
image.png

当然你也可以自动创建测试类

1.第一步:通过AS自带的功能自动创建一个测试类


image.png

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


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

测试注解说明

@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;

相关文章

网友评论

      本文标题:Android单元测试

      本文链接:https://www.haomeiwen.com/subject/vxtmfftx.html