Android单元测试

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

  • 有明确的返回值,如上图的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;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容