![](/img/trans.png)
[英]Matching varargs in Mockito for unit testing in an overloaded method
[英]Ignore parent class' method in unit testing with mockito
我尝试尝试以下课程:
public class ClassA extends ClassB {
...
public String methodToBeTested(){
methodA1();
methodB();
return something;
}
...
}
methodB
是父类的方法。 我想忽略此方法或仅将其存根。 我越来越尝试以下方法:
public class TestClassA{
@Mock
ClassB instanceB;
public String testTheMethodToBeTested{
doNothing().when(instanceB).methodB();
ClassA instanceA = new ClassA();
String result = instanceA.methodToBeTested();
String expected = "foo"
assertTrue(result.equals(expected));
}
...
}
但是我看到methodB
仍在执行。 但是在ClassA
如果我声明一个classB变量及其设置器; 我的测试代替了methodB()
编写classB.methodB()
。 但要求我不要更改正在测试的代码。 有什么方法可以测试ClassA
吗?
您可以使用@Spy
( http://site.mockito.org/mockito/docs/current/org/mockito/Mockito.html#13 )。
public class TestClassA{
@Rule
public MockitoRule rule = MockitoJUnit.rule();
@Spy
ClassA instanceA;
public String testTheMethodToBeTested{
doNothing().when(instanceA).methodB();
String result = instanceA.methodToBeTested();
String expected = "foo"
assertTrue(result.equals(expected));
}
...
}
由于继承的原因,您没有实例化ClassB
的实例,但是Mockito
允许您监视真实的对象。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.