我试图在升级到API 26和Robolectric 3.4.2之后在这个开源项目中运行一些测试(由于3.3不支持API 26,从3.3开始)
似乎对元数据的嘲弄不再起作用了。
设置如下
Bundle metaData = mock(Bundle.class);
RuntimeEnvironment.application.getApplicationInfo().metaData = metaData;
但是,在运行单元测试时,metaData将返回null
Context applicationContext = RuntimeEnvironment.application.getApplicationContext();
ApplicationInfo info = applicationContext.getPackageManager().getApplicationInfo(context.getPackageName(), PackageManager.GET_META_DATA);
Bundle metaData = info.metaData;
我无法理解为什么。我是Robolectric和Mockito的新手,但我真的想弄清楚出了什么问题以及如何修复它,所以任何指针都非常感激。
答案 0 :(得分:0)
我最后通过针对API 26进行编译来运行测试,但是使用Robolectric 3.3.2,这是仍然支持API 26的最后一个3.3版本。然后在robolectric配置中设置sdk = 25.
我只是在这里添加它,以防它帮助其他人。我无法弄清楚为什么它不适用于robolectric 3.4。