我今天已经开始修补Mockito,并且经历了相当的斗争,希望有人能够理顺我。Mockito的麻烦
基本上我想要做的就是能够验证我的getName()方法中的3个方法被调用。
出于某种原因,尽管在我的测试中,每当我打这一行:
Mockito.verify(mock).getPathObj();
我最终得到这个错误: “通缉令,但不会调用: mock.getPathObj();”
这里是类我想测试
public class JavaFileInput {
private Path path;
public JavaFileInput(){
super();
this.path = null;
}
public Path getPathObj() {
return this.path;
}
@Override
public String getName() {
Path path = getPathObj(); //<--I realize I could just use my path member var here. Added for troubleshooting.
return path.getFileName().toString();
}
}
这里是我的测试类
public class TestJavaFileInput {
@Mock(name = "path") private Path path;
@InjectMocks private JavaFileInput mock = Mockito.mock(JavaFileInput.class);
@Before
public void testSetup(){
MockitoAnnotations.initMocks(this);
}
@Test
public void getNameTest(){
mock.getName();
Mockito.verify(mock).getName();
Mockito.verify(mock).getPathObj();
}
}
是否有人有一些了解我吗?
我已经用尽了这些资源,但我想我可以很容易忽视的东西: http://www.vogella.com/tutorials/Mockito/article.html http://docs.mockito.googlecode.com/hg/latest/org/mockito/Mockito.html#21
您并未测试真正的JavaFileInput实例。您正在测试JavaFileInput的模拟。这是没有意义的。根据定义,模拟对象的方法除了告诉他们要做的事之外别无它物。 –