安卓Instrumentation Test 笔记(一)

作者: 人海中一只羊 | 来源:发表于2017-09-19 17:58 被阅读178次

    前言


    翻译自谷歌官方文档,部分笔记内容加入自己的理解.

    Instrumented Tests


    Instrumented Test 以apk的形式运行待测app的同一款机器上.系统会在同一个进程中运行待测app和编译出的测试apk.
    当你的测试程序需要某些信息(例如宿主app的context上下文环境),或者当它们需要真实的安卓框架组件的时候,可以来构建 Instrumentation Test.使用Instrumentation Test 可以减少编写和维护模拟代码 的工作量,同时如果你需要模拟依赖关系,仍然可以使用 mockito框架.

    添加依赖


    dependencies {
      androidTestCompile 'com.android.support.test:runner:0.4'
      // Set this dependency to use JUnit 4 rules
      androidTestCompile 'com.android.support.test:rules:0.4'
      // Set this dependency to build and run Espresso tests
      androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.1'
      // Set this dependency to build and run UI Automator tests
      androidTestCompile 'com.android.support.test.uiautomator:uiautomator-v18:2.1.2'
    }
    

    AndroidJUnitRunner 设置为

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

    除了上述的依赖以外,还可以选择添加 HamCrest 这个库,使用这个库可以让你更灵活地来插入断言语句.

    创建仪器测试类


    创建仪器化的 Junit4测试类,首先需要在测试类的定义前添加 @RunWith 注解,然后需要在 build.gradle 中配置 AndroidJunitRunner 为默认的test runner.

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

    创建测试集合


    为了更好地测试执行你的仪器单元测试,你可以对测试类中的测试集合进行分组并且集中运行这些用例.测试集合可以是嵌套的;测试类中可以包含其它的测试集并且运行测试集中的所有用例.
    为了方便,测试集的所属的包名通常以 "suite" 结尾.
    测试集的基本格式如下,使用 @Suite.SuiteClass() 这个注解,参数为单独的测试类或测试集.

    import com.example.android.testing.mysample.CalculatorAddParameterizedTest;
    import com.example.android.testing.mysample.CalculatorInstrumentationTest;
    import org.junit.runner.RunWith;
    import org.junit.runners.Suite;
    
    // Runs all unit tests.
    @RunWith(Suite.class)
    @Suite.SuiteClasses({CalculatorInstrumentationTest.class,
            CalculatorAddParameterizedTest.class})
    public class UnitTestSuite {}
    

    相关文章

      网友评论

        本文标题:安卓Instrumentation Test 笔记(一)

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