实际上,我需要获取 API 调用的响应,为此我需要 Context
。
更新。
仅适用于 1.x 和 2.x 版本:
Robolectric.application;
对于版本3.x:
RuntimeEnvironment.application;
对于版本4.x:
在你的build.gradle
文件中添加:
testImplementation 'androidx.test:core:1.0.0'
使用以下代码检索上下文:
ApplicationProvider.getApplicationContext()
您可以使用
RuntimeEnvironment.application
testImplementation "androidx.test:core-ktx:${deps.testrunner}"
并使用:
private val app = ApplicationProvider.getApplicationContext()
使用这个:
Robolectric.application
截至2019年,最新的Robolectric版本为4.3。
ShadowApplicationProvider.getShadowApplication()
和
RuntimeEnvironment.application
都已经过时。因此我正在使用
Context context = RuntimeEnvironment.systemContext;
获取Context。
要获取应用程序上下文,您必须执行以下操作:
org.robolectric.default
包名。要获取真实的包名,请执行以下操作:testImplementation 'org.robolectric:robolectric:4.2.1'
您的测试类:@RunWith(RobolectricTestRunner.class)
@Config( manifest="AndroidManifest.xml")
public class FooTest {
@Test
public void fooTestWithPackageName(){
Context context = ApplicationProvider.getApplicationContext();
System.out.println("My Real Package Name: " + context.getPackageName());
}
}
ShadowApplication.getApplicationContext()
。对于任何使用@RunWith(RobolectricTestRunner::class)
注释的测试,请使用RuntimeEnvironment.application.getApplicationContext()
。final Context context = RuntimeEnvironment.application;
RuntimeEnvironment
和 ShadowApplication
的 javadocs 目前反映的是非 alpha 3.x 版本。)首先在你的build.gradle
中添加以下内容:
testImplementation 'androidx.test:core:1.2.0'
然后使用以下代码:
ApplicationProvider.getApplicationContext() as Application
同意@EugenMartynov和@rds的答案...
在NetworkImageViewTest.java中可以找到一个快速的示例:Volley-Marshmallow-Release
// mNIV = new NetworkImageView(Robolectric.application);
mNIV = new NetworkImageView(RuntimeEnvironment.application);
Volley链接可在此处找到: https://android.googlesource.com/platform/frameworks/volley/+/marshmallow-release
您需要在Android Studio的volley模块中添加依赖项:
dependencies {
testCompile 'junit:junit:4.12'
testCompile 'org.mockito:mockito-core:1.10.19'
testCompile 'org.robolectric:robolectric:3.1.2'
}
@BeforeClass
注解的方法)不要使用RuntimeEnvironment.application
,因为Robolectric可能在这时尚未初始化,该值将为null
。请注意保持原意并简明扼要地表达。 - sfera