zoukankan      html  css  js  c++  java
  • Android测试环境配置

    测试是软件开发中非常重要的一部分,Android中是使用junit测试框架,本文使用的是junit4Android Studio。Android测试主要分两类本地测试和Instrumented测试,本地测试其实就是普通的Java程序测试,它运行在本地的JVM。Instrumented测试则需要一台Android设备来运行测试。

    环境配置

    本地测试与Instrumented测试在测试之前都需要配置测试环境以下是两种测试配置的步骤(Android Studio默认是Instrumented测试):

    1. 添加测试依赖
    2. 切换Build Variant
    3. 建立测试源文件

    添加依赖

    注意Android Studio引入测试依赖包含两个关键字分别是testCompile和androidTestCompile。testCompile是声明本地测试的依赖,androidTestCompile是声明Instrumented测试依赖。

    使用testCompile添加依赖:

        testCompile 'junit:junit:4.12'
    

    使用androidTestCompile添加依赖

        androidTestCompile 'junit:junit:4.12'
    
    dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        compile 'com.android.support:appcompat-v7:23.1.1'
        compile 'com.android.support:design:23.1.1'
        testCompile 'junit:junit:4.12'
        androidTestCompile 'junit:junit:4.12'
    }
    

    运行Instrumented测试时还需要在build.gradle中添加:

    android {
        defaultConfig {
            testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        }
    } 
    

    切换Build Variant

    Android Studio默认的Build Variant是Android Instrumentation Tests

    Build Variant

    建立测试源文件

    Instrumented测试文件目录结构:

    • src
      • androidTest

    本地测试源文件目录结构:

    • src
      • test

    test-dirs

    可以看到上图的src/test目录下的源文件是错误的这是因为现在我的Build Variant的Test ArtifactId是Android Instrumentation Tests切换到Unit Tests就可以了。

    编写测试

    现在编写一个简单本地测试,假设目录src/main/java/com/lw/busyness/中现在有一个CalculateService类内容如下:

    public class CalculateService {
    
        public int add(int a, int b){
            return a + b;
        }
    
        public int sub(int a, int b){
            return a -b;
        }
    
        public int mul(int a, int b){
            return a * b;
        }
    
        public int div(int a, int b){
            return a * b;
        }
    }
    

    新建测试源文件src/test/java/com/lw/busyness/TestCalculateService.java

    public class TestCalculateService {
    
        private static CalculateService mCalculator;
    
        @BeforeClass
        public static void init(){
            mCalculator = new CalculateService();
        }
    
        @Test
        public void testAdd(){
            int r = mCalculator.add(1, 2);
            Assert.assertEquals(3, r);
        }
    
        @Test
        public void testSub(){
            int r = mCalculator.sub(1, 2);
            Assert.assertEquals(-1, r);
        }
    
        @Test
        public void testMul(){
            int r = mCalculator.mul(1, 2);
            Assert.assertEquals(2, r);
        }
    
        @Test
        public void testDiv(){
            int r = mCalculator.div(1, 2);
            Assert.assertEquals(0, r);
        }
    
    
        @AfterClass
        public static void terminate(){
            mCalculator = null;
        }
    }
    

    最后运行这个测试,在TestCalculateService类上右击选择Run TestCalculateService可以看到测试全部通过。
    test result

    总结

    这篇章主要介绍了Android的两种测试方法和各自的配置。关于如何去分别编写这两种测试讲的不多,可以去junit官网查看相应的使用说明。

  • 相关阅读:
    定时任务时间表达式的规则(自己总结)
    本地vagrant配置虚拟域名的坑
    商派onex本地部署无法进入的问题
    一周一篇文章,立贴为证
    Ecshop安装的坑,建议不要使用!
    MYSQL查询语句优化
    .gitignore文件
    剖析Disruptor:为什么会这么快?(二)神奇的缓存行填充
    Disruptor 为什么这么快?
    一篇文章让你成为 NIO 大师 - MyCAT通信模型
  • 原文地址:https://www.cnblogs.com/xwgblog/p/5141478.html
Copyright © 2011-2022 走看看