我是Android单元测试的新手,我正在使用Mockito来做这件事。
我想测试我的方法,该方法具有来自另一个类的方法。我想存根该方法,以便不应调用它。我正在使用doReturn().when()
,因此不调用原始方法,而是调用原始方法。
这是我的代码:
doReturn(true).when(myclass1mock).methodofclass1();
boolean a = myclass1mock.methodofclass1(); //here it return true
class2spy.methodofclass2(anyvalue);
我正在测试的方法是:
public class2 {
public void methodofclass2(Value) {
boolean value = class1.methodofclass1(); //here I don't want to call this method
}
}
问题是每次调用class1
的方法。我想要一些东西,这样就不会调用class1.methodofclass1()
。
我正在使用以下方法注射:
@Mock
class1 myclass1mock;
@InjectMocks
class2 myclass2;
@Before
public void setUp() {
myclass2 = new myclass2();
class2spy = Mockito.spy(myclass2);
}
由于您想测试 Class2 的行为,那么我认为您混淆了注释。此外,我会利用@Spy
注释,而不是手动配置它:
@Spy
class1 myclass1Spy;
@InjectMocks
class2 myclass2;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
}
另外,不要尽量不监视正在测试的类(class2(。使用真正的实现。