我正在尝试为解析器编写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
的实例)将作为此测试的模拟注入,而其他字段通常会像在生产中一样注入(由于使用了应用程序模块)。保重,您不能两次定义进样