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

保重,您不能两次定义进样

09-13 12:35