美文网首页
Android 单元测试框架 Robolectric

Android 单元测试框架 Robolectric

作者: 三季人 | 来源:发表于2016-04-01 17:23 被阅读368次

    参考文档

    Robolectric 简介

    <code>Instrumentation</code>与<code>Roboletric</code>都是针对 Android 进行单元测试的框架,前者在执行 case 时候是以 Android JUnit 的方式运行,因此必

    须在真实的 Android 环境中运行(模拟器或者真机),而后者则是以 Java Junit 的方式运行,这里就脱离了对 Android 环境的依赖,而可以直接将 case 在 JVM 中运行,大赞

    ,因此很适合将 Roboletric 用于 Android 的测试驱动开发。

    新建 Android Project

    新建 一个Android 项目( RoboletricDemo ),一路默认,这里就不帖 MainActivity 的代码,代码很简单,该示例的主界面是一个 TextView,显示的内容为 Hello world!
    ,界面中还有一个 Button,点击 Button,TextView 的内容会变为Hello xuxu!
    ,呵呵。。

    配置 Gradle

    • 导入相关的库文件

      //robolectric-test
      testCompile "org.robolectric:shadows-multidex:3.0"
      
    • 配置 Build Variants

    在 Build Variants 面板中选择 Unit Tests

    现在,万事俱备,让我们开始写第一个测试吧。首先,创建一个非常简单的被测类:Calculator类。

    Calculator.java

    package com.example.testing.testingexample;
    
    public class Calculator {
    
    public double sum(double a, double b){
        return 0;
    }
    
    public double substract(double a, double b){
        return 0;
    }
    
    public double divide(double a, double b){
        return 0;
    }
    
    public double multiply(double a, double b){
        return 0;
    }
    }
    

    注意
    Android Studio提供了一个快速创建测试类的方法。只需在编辑器内右键点击Calculator类的声明,选择Go to > Test,然后"Create a new test…"

    在打开的对话窗口中,选择JUnit4和"setUp/@Before",同时为所有的计算器运算生成测试方法。

    这样,就会在正确的文件夹内(app/src/test/java/com/example/testing/testingexample)
    生成测试类框架,在框架内填入测试方法即可。下面是一个示例:

    Calculator.java

     package com.example.testing.testingexample;
    
    import org.junit.Before;
    import org.junit.Test;
    
    import static org.junit.Assert.*;
    
    public class CalculatorTest {
    
    private Calculator mCalculator;
    
    @Before
    public void setUp() throws Exception {
        mCalculator = new Calculator();
    }
    
    @Test
    public void testSum() throws Exception {
        //expected: 6, sum of 1 and 5
        assertEquals(6d, mCalculator.sum(1d, 5d), 0);
    }
    
    @Test
    public void testSubstract() throws Exception {
        assertEquals(1d, mCalculator.substract(5d, 4d), 0);
    }
    
    @Test
    public void testDivide() throws Exception {
        assertEquals(4d, mCalculator.divide(20d, 5d), 0);
    }
    
    @Test
    public void testMultiply() throws Exception {
        assertEquals(10d, mCalculator.multiply(2d, 5d), 0);
      }
    }
    

    运行单元测试

    终于到运行测试的时候了!右键点击CalculatorTest
    类,选择Run > CalculatorTest。也可以通过命令行运行测试,在工程目录内输入:

    ./gradlew test
    

    查看报告
    执行完测试之后,会在 app/build/reports/tests/
    目录下生成相应地测试报告,使用浏览器打开

    相关文章

      网友评论

          本文标题:Android 单元测试框架 Robolectric

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