我是 Robolectric 的新手。从 Robolectric v3.0迁移到v3.4.1后,我遇到了这些问题。
AppController
类Application
RuntimeEnvironment.application
转换AppController
时遇到了类强制转换异常,而我的AppController
扩展Application
并且工作正常在迁移到最新版本之前很好。 请在下面找到我的测试代码
@RunWith(RobolectricTestRunner.class)
@Config(constants = BuildConfig.class, manifest = "app/src/main/AndroidManifest.xml", sdk = 21)
public class FragmentTest {
private ExampleFragment fragment = SupportFragmentController.of(new ExampleFragment()).create().get();
private Context mContext;
@Before
public void setUp() throws Exception {
// RuntimeEnvironment.application.onCreate();
mContext =RuntimeEnvironment.application ;
}
@Test
public void testFragmentInstantiation() {
ExampleFragment.mAppController = (AppController)mContext;
}
重现 - 运行任何测试。
Robolectric 版本为3.4.1。
答案 0 :(得分:0)
主要建议是不要将清单文件位置放在@Config
部分,除非您知道自己在做什么。所以请将您的测试注释更改为:
@Config(constants = BuildConfig.class, sdk = 21)
另外,我不知道它是否符合目的,但您可以在测试中使用更新的android sdk,使用最新版本的 Robolectric