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.
升级到 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.