我正在尝试为解析器编写 Junit 测试。此解析器从所选文件创建顶点和边图。在解析器中,我多次调用“VertexImpl”的构造函数来创建我需要的顶点。
当我测试解析器时,我不想创建实际的“VertexImpl”对象,因为我希望它是一个真正的单元测试。
每次使用“Mockito”和“Guice”调用构造函数时,如何创建模拟对象?
最佳答案
你可以在你的测试类中做类似的事情:
@Inject
private YourClassToMock _myMock;
@Before
public void setUp( ) throws Exception {
Guice.createInjector( /* Your application modules */, mockModule( ) )
.injectMembers( this );
}
private Module mockModule( ) {
return new AbstractModule( ) {
@Override
protected void configure( ) {
bind( YourClassToMock.class ).toInstance( mock( YourClassToMock.class ) );
}
};
}
字段 _myMock,YourClassToMock
的实例,将作为此测试的模拟注入(inject),其他字段将像在生产中一样正常注入(inject)(由于使用您的应用程序模块)。
注意,你不能定义一个注入(inject)两次
关于java - Junits 的 Guice 和 Mockto,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36599196/