谷歌提供了新的类来编写Android测试,尤其是使用jUnit 4:https://developer.android.com/tools/testing-support-library/index.html
我想知道是否可以同时使用AndroidJUnit4和jUnit的Parameterized runner?
谷歌提供了新的类来编写Android测试,尤其是使用jUnit 4:https://developer.android.com/tools/testing-support-library/index.html
我想知道是否可以同时使用AndroidJUnit4和jUnit的Parameterized 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"
}
}
样例参数化测试.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);
}
}
如果您需要在同一个测试类中既可以运行一些单独的测试,又可以运行一些参数化的测试,请参阅使用Enclosed
runner的此答案:https://dev59.com/vlwY5IYBdhLWcg3wTWMu#35057629