AndroidJUnit4和参数化测试

AndroidJUnit4和参数化测试,android,junit,android-testing,parameterized,Android,Junit,Android Testing,Parameterized,Google提供了新的类来编写Android测试,特别是使用jUnit 4: 我想知道是否可以使用jUnit中的AndroidJUnit4 runner,以及参数化的runner?当前接受的答案没有提供解释,链接的示例也不擅长显示需要做什么。这里有一个更完整的解释,希望能帮你省去我花在这上面的时间 虽然文档并没有让这一点变得非常明显,但它实际上非常容易设置!只要在模块build.gradle文件中设置testInstrumentationRunner“Android.support.test.

Google提供了新的类来编写Android测试,特别是使用jUnit 4:


我想知道是否可以使用jUnit中的AndroidJUnit4 runner,以及参数化的runner?

当前接受的答案没有提供解释,链接的示例也不擅长显示需要做什么。这里有一个更完整的解释,希望能帮你省去我花在这上面的时间


虽然文档并没有让这一点变得非常明显,但它实际上非常容易设置!只要在模块
build.gradle
文件中设置
testInstrumentationRunner“Android.support.test.runner.AndroidJUnitRunner”
,您就可以使用另一个运行程序进行检测的Android测试。如果已设置,则不需要在插入指令的测试中显式设置
@RunWith(AndroidJUnit4.class)

最简单的示例如下所示:

build.gradle

apply plugin: 'com.android.application'

android {
    compileSdkVersion 26
    buildToolsVersion "26.0.1"

    defaultConfig {
        minSdkVersion 19
        targetSdkVersion 26

        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
}
sampleParameterizeTest.java

@RunWith(Parameterized.class)
public class SampleParameterizedTest {

    @Parameter(value = 0)
    public int mTestInteger;

    @Parameter(value = 1)
    public String mTestString;

    @Parameters
    public static Collection<Object[]> initParameters() {
        return Arrays.asList(new Object[][] { { 0, "0" }, { 1, "1" } });
    }

    @Test
    public void sample_parseValue() {
        assertEquals(Integer.parseInt(mTestString), mTestInteger);
    }
}
@RunWith(参数化的.class)
公共类样本参数化测试{
@参数(值=0)
公共国际测试员;
@参数(值=1)
公共字符串mTestString;
@参数
公共静态集合initParameters(){
返回Arrays.asList(新对象[][{{0,“0”},{1,“1”});
}
@试验
公共无效样本值(){
assertEquals(Integer.parseInt(mTestString)、mTestInteger);
}
}
如果您还需要单独运行某些测试,以及在同一测试类中运行其他参数化测试,请参阅关于使用随附的
运行程序的回答: