我在我的android项目中使用此语句“ResourceResources.getSystem()。getDisplayMetrics()。scaledDensity”以获得缩放密度。当我在编写单元测试时,它说应该嘲笑Resources类。但是当我尝试模拟时,android会向我抛出一个错误,资源中的getSystem()方法没有被模拟。
答案 0 :(得分:2)
我认为这可以适应
的特定情况ResourceResources.getSystem().getDisplayMetrics().scaledDensity
我这样做的
Resources.getSystem().getStrings();
我也为这件事感到烦恼,希望以此对我有帮助
PowerMockito.mockStatic(Resources.class,RETURNS_MOCKS);
Resources res=Mockito.mock(Resources.getSystem().getClass());
PowerMockito.when(Resources.getSystem()).thenReturn(res);
Mockito.when(res.getString(Mockito.anyInt())).thenReturn("any_message");