我目前正在我的应用中测试一种对其运行的设备的DisplayMetrics设置敏感的片段方法。如何在RobolectricTestRunner的Robolectric测试中调整DisplayMetrics(如果可能,请提供示例)?
这是我的简单测试的要点,我希望能够控制屏幕的DisplayMetrics。
@Test
public void whenMyFramentMethod_willWorkForDensity() {
...
startFragment(fragment);
//Results of this method will vary with different screen sizes.
Assert.assertEquals(200, fragment.fetchAWidth());
}
答案 0 :(得分:1)
您现在应该使用@Config注释来设置环境:
@Config(qualifiers = "xhdpi")
答案 1 :(得分:0)
您可以在ShadowResources
:
@Test
public void shadow_resources_example(){
final Context context = RuntimeEnvironment.application;
final ShadowResources shadowResources = Shadows.shadowOf(context.getResources());
shadowResources.setDensity(2f); //2 == xhdpi for example
assertEquals(20, (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 10, context.getResources().getDisplayMetrics()));
}