实际上,我需要获取 API 调用的响应,为此我需要 Context
。
ShadowApplication.getInstance().applicationContext
使用Robolectric.getShadowApplication()
比直接使用Robolectric.application
更安全。
Robolectric.application
。 - Denys Kniazhev-Support Ukraine好的,我知道很多人在我之前已经回答过这个问题,可能已经过时了。
when(mockApplication.getApplicationContext()).thenReturn(RuntimeEnvironment.application);
when(mockApplication.getFilesDir()).thenReturn(RuntimeEnvironment.application.getFilesDir());
sharedPref = RuntimeEnvironment.application.getSharedPreferences(KEY_MY_PREF, Context.MODE_PRIVATE);
sut = new BundleManagerImpl(mockApplication,
processHtmlBundle, resultListener, sharedPref);
我得到了null,因为when()部分在sut初始化之后。这可能会帮助你们中的一些人。
另外我有
@RunWith(CustomRobolectricTestRunner.class)
@Config(constants = BuildConfig.class)
when(mockApplication.getApplicationContext()).thenReturn(RuntimeEnvironment.application.getApplicationContext()); works
RuntimeEnvironment.application
或RuntimeEnvironment.application.getApplicationContext()
。 - qix