Android 在 robolectric 单元测试中模拟电源管理器
Android mock Power Manager in robolectrict unit test
您好,我正在尝试在我的单元测试中添加电源管理器的模拟版本,但似乎无法在 robolectric 3.2.2 的文档中找到有关如何使用自定义影子上下文的信息?
这是我的代码:
activityController = Robolectric.buildActivity(activityClass).withIntent(intent).attach();
activity = activityController.create().get();
PowerManager mockPowerManager = Mockito.mock(PowerManager.class);
Mockito.when(mockPowerManager.isScreenOn()).thenReturn(false);
ShadowContextImpl shadowContext = new ShadowContextImpl();
shadowContext.setSystemService(Context.POWER_SERVICE, mockPowerManager);
如何将 shadowContext 注入或添加到我正在测试的 activity 中?
您可以使用 ShadowPowerManager 而不是 Mockito
PowerManager powerManager = (PowerManager) RuntimeEnvironment.application.getSystemService(Context.POWER_SERVICE);
ShadowPowerManager shadowPowerManager = shadowOf(powerManager);
shadowPowerManager.setIsScreenOn(false);
您好,我正在尝试在我的单元测试中添加电源管理器的模拟版本,但似乎无法在 robolectric 3.2.2 的文档中找到有关如何使用自定义影子上下文的信息?
这是我的代码:
activityController = Robolectric.buildActivity(activityClass).withIntent(intent).attach();
activity = activityController.create().get();
PowerManager mockPowerManager = Mockito.mock(PowerManager.class);
Mockito.when(mockPowerManager.isScreenOn()).thenReturn(false);
ShadowContextImpl shadowContext = new ShadowContextImpl();
shadowContext.setSystemService(Context.POWER_SERVICE, mockPowerManager);
如何将 shadowContext 注入或添加到我正在测试的 activity 中?
您可以使用 ShadowPowerManager 而不是 Mockito
PowerManager powerManager = (PowerManager) RuntimeEnvironment.application.getSystemService(Context.POWER_SERVICE);
ShadowPowerManager shadowPowerManager = shadowOf(powerManager);
shadowPowerManager.setIsScreenOn(false);