Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
模仿android.os.Build.MODEL_Android_Unit Testing_Mockito_Powermockito - Fatal编程技术网

模仿android.os.Build.MODEL

模仿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);

我正在尝试使用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);
    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