简体   繁体   English

如何模拟具体类void方法

[英]How to mock concrete class void method

I'm trying to mock Lucenes IndexReader.close() to do nothing. 我试图模仿Lucenes IndexReader.close()什么都不做。

I thought this should work... 我认为这应该有用......

    IndexReader reader = Mockito.mock(IndexReader.class);
    Mockito.stubVoid(reader).toReturn().on().close(); // old approach
    Mockito.doNothing().when(reader).close(); // new approach

but both result in the unit test calling the actual, real close method and ultimately causing a null pointer exception. 但都导致单元测试调用实际的,真正的close方法并最终导致空指针异常。

What have I missed? 我错过了什么?

As the javadoc indicates, close() is a final method. 正如javadoc所示,close()是最终方法。 And Mockito can't mock final methods . 而Mockito 无法模拟最终方法

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM