对从另一个类调用的方法进行单元测试



我是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(。使用真正的实现。

相关内容

  • 没有找到相关文章

最新更新