模仿android.os.Build.MODEL
我正在尝试使用Mockito/PowerMockito创建一个测试,其中我们使用来自模仿android.os.Build.MODEL,android,unit-testing,mockito,powermockito,Android,Unit Testing,Mockito,Powermockito,我正在尝试使用Mockito/PowerMockito创建一个测试,其中我们使用来自android.os.Build.MODEL的值。我试过使用: @RunWith(PowerMockRunner.class) @PrepareForTest({android.os.Build.class}) public class Test { @Before public void init() { PowerMockito.spy(android.os.Build.class);
android.os.Build.MODEL
的值。我试过使用:
@RunWith(PowerMockRunner.class)
@PrepareForTest({android.os.Build.class})
public class Test {
@Before
public void init() {
PowerMockito.spy(android.os.Build.class);
PowerMockito.doReturn("model").when(Build.class, "getString", "ro.product.model");
}
}
因为我看到,Device.MODEL
正在调用private static String getString
方法,但我得到以下异常:
org.powermock.reflect.exceptions.MethodNotFoundException: No method found with name 'getString' with parameter types: [ java.lang.String ] in class android.os.Build.
有没有办法模拟这个变量
ReflectionHelpers.setStaticField(Build.class,"MODEL", "Value-You-Want-Model-To-Be");
我喜欢robolectric做这类事情,您可以使用上面的调用模拟字段检查这一点,如果我使用
PowerMockito.mockStatic(android.os.Build.class),它不会改变任何东西代码>而不是spy