如何创建可在Android测试和单元测试中使用的测试类?

Som*_*ent 7 testing android unit-testing

我经常发现自己在为应用程序模块编写测试时,为Android测试/androidTest和单元测试复制了完全相同的测试类集,例如模拟或助手/test.

例如,我有一些静态的功能,帮助我迅速成立了嘲笑的/test/MockUtils.java.然而,我不能再使用任何的我的Android测试这个助手类,因为它们不共享相同的类路径- /androidTestVS /test.

我想过要创建一个只包含测试资源的新模块.但是,这个想法不会飞,因为Android Gradle插件拒绝依赖于app模块.

project testCommon解析为APK归档,不支持作为编译依赖项.

有没有其他方法可以创建可以在Android测试和单元测试中重用的测试类?

Com*_*are 6

注意:这是一个理论化的解决方案,我没有尝试过.

步骤1:testSrc/在模块中创建一个目录,您要为其设置共享测试代码.

步骤#2:将共享代码放在该目录中(具有基于Java包的适当子目录).

步骤3:android在模块build.gradle文件的闭包内添加以下闭包:

sourceSets {
    androidTest {
        java.srcDirs <<= 'testSrc'
    }

    test {
        java.srcDirs <<= 'testSrc'
    }
}
Run Code Online (Sandbox Code Playgroud)

这是什么应该做的是告诉摇篮为Android这testSrc是在Java代码中的另一个源目录androidTesttestsourcesets.