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

Robolectric 3.4 meta-data mocking not working on API 26

升级到 API 26 和 Robolectric 3.4.2(从 3.3 开始,因为 3.3 不支持 API 26)

元数据的mocking好像不行了

设置如下 Bundle metaData = mock(Bundle.class); RuntimeEnvironment.application.getApplicationInfo().metaData = metaData;

然而,当单元测试为 运行 时,元数据 returns 为 null Context applicationContext = RuntimeEnvironment.application.getApplicationContext(); ApplicationInfo info = applicationContext.getPackageManager().getApplicationInfo(context.getPackageName(), PackageManager.GET_META_DATA); Bundle metaData = info.metaData;

我不明白为什么。我是 Robolectric 和 Mockito 的新手,但我真的很想弄清楚哪里出了问题以及如何解决它,所以非常感谢任何指点。

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

我只是在这里添加它以防它对其他人有帮助。我不明白为什么它不适用于 robolectric 3.4.