[英]Mock “inner” object with Mockito
单元测试和mockito相当新,我有一个方法来测试哪个方法调用新对象。 我该如何模仿内部物体?
methodToTest(input){
...
OtherObject oo = new OtherObject();
...
myresult = dosomething_with_input;
...
return myresult + oo.methodX();
}
我可以模拟oo返回“abc”吗? 我真的只想测试我的代码,但是当我模拟“methodToTest”返回“42abc”时,我就不会测试我的“dosomething_with_input” - 代码...
我认为实现methodToTest
的类名为ClassToTest
OtherObject
创建工厂类 ClassToTest
一个领域 ClassToTest
构造函数的参数ClassToTest
ClassToTest
对象时ClassToTest
初始化并为工厂创建一个setter 你的测试类应该是这样的
public class ClassToTestTest{
@Test
public void test(){
// Given
OtherObject mockOtherObject = mock(OtherObject.class);
when(mockOtherObject.methodX()).thenReturn("methodXResult");
OtherObjectFactory otherObjectFactory = mock(OtherObjectFactory.class);
when(otherObjectFactory.newInstance()).thenReturn(mockOtherObject);
ClassToTest classToTest = new ClassToTest(factory);
// When
classToTest.methodToTest(input);
// Then
// ...
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.