AndroidJUnit4和参数化测试
Google提供了新的类来编写Android测试,特别是使用jUnit 4: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.
我想知道是否可以使用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);
}
}
如果您还需要单独运行某些测试,以及在同一测试类中运行其他参数化测试,请参阅关于使用随附的运行程序的回答: