Robolectric 3.4元数据模拟不适用于API 26

时间:2017-08-22 18:42:37

标签: android robolectric

我试图在升级到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的新手,但我真的想弄清楚出了什么问题以及如何修复它,所以任何指针都非常感激。

1 个答案:

答案 0 :(得分:0)

我最后通过针对API 26进行编译来运行测试,但是使用Robolectric 3.3.2,这是仍然支持API 26的最后一个3.3版本。然后在robolectric配置中设置sdk = 25.

我只是在这里添加它,以防它帮助其他人。我无法弄清楚为什么它不适用于robolectric 3.4。