zoukankan      html  css  js  c++  java
  • Android单元测试学习(一)

    什么是单元测试

    首先总结一下什么是单元测试,单元测试中的单元在Android或Java中可以理解为某个类中的某一个方法,因此单元测试就是针对Android或Java中某个类中的某一个方法中的逻辑代码进行验证即测试该方法是不是可以正常工作。

    还有一点就是要区分单元测试与集成测试(功能测试、UI测试),单元测试是针对单元即方法的测试,被测单元粒度要小并且具备独立性,而集成测试是测试多个单元(方法)组合成的功能模块。

    为什么需要进行单元测试

    • 单元测试的测试相对于集成测试的测试成本较低
    • 提高开发效率
    • 提升项目工程代码质量
    • 快速定位Bug

    如何进行单元测试

    在Android Studio中默认情况下不需要进行配置,已经支持Instrumentation与纯JUnit,分别在androidTest与test中创建测试类,编写测试代码

    image

    以下对JUnit单元测试进行简单介绍

    public class Calculater {
        public int add(int a, int b) {
            return a + b;
        }
    }
    

    AssertEquals

    单元测试用例:

    public class CalculaterTest {
    
        Calculater calculater = new Calculater();
    
        @org.junit.Test
        public void testAdd() {
            int a = 1;
            int b = 2;
    
            int result = calculater.add(a, b);
    
            Assert.assertEquals(result, 3); // 验证result==3,如果不正确,测试不通过
        }
    }
    

    以上是一个要测试的类Calculater和测试用例CalculaterTest。在Intellij或Android Studio对类右键->run CalculaterTest,用例中所有被@org.junit.Test注解的方法,就会被执行。

    image

    image

    测试通过。

    如果代码改成Assert.assertEquals(result, 4);,测试会失败。

    image

    verify的作用,是验证函数是否被调用(以及调用了多少次)。

    public class CalculaterTest {
    
        @org.junit.Test
        public void testAdd2() {
            calculater = mock(Calculater.class);
            
            calculater.add(1, 2);
    
            verify(calculater).add(1, 2); // 验证calculater.add(a, b)是否被调用过,且a==1 && b==2
            // 测试通过
        }
    }
    
  • 相关阅读:
    京东POP2020新店新规
    hdu 1203
    hdu 1513
    有关Canvas的一点小事—canvas数据和像素点
    有关Canvas的一点小事—图像绘制
    有关Canvas的一点小事--鼠标绘图
    Javascript和jquery事件--键盘事件KeyboardEvent
    [转]DOM0,DOM2,DOM3事件处理方式区别
    Javascript和jquery事件--鼠标事件的小结
    Javascript和jquery事件--鼠标移动事件mousemove
  • 原文地址:https://www.cnblogs.com/xl-phoenix/p/9660334.html
Copyright © 2011-2022 走看看