Robolectric没有调用Application.onCreate()

时间:2017-09-07 09:29:43

标签: android robolectric

我是 Robolectric 的新手。从 Robolectric v3.0迁移到v3.4.1后,我遇到了这些问题。

  1. Robolectric 未加载我的AppControllerApplication
  2. 我在向RuntimeEnvironment.application转换AppController时遇到了类强制转换异常,而我的AppController扩展Application并且工作正常在迁移到最新版本之前很好。
  3. 请在下面找到我的测试代码

    @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。

1 个答案:

答案 0 :(得分:0)

主要建议是不要将清单文件位置放在@Config部分,除非您知道自己在做什么。所以请将您的测试注释更改为:

@Config(constants = BuildConfig.class, sdk = 21)

另外,我不知道它是否符合目的,但您可以在测试中使用更新的android sdk,使用最新版本的 Robolectric