简体   繁体   中英

How to mock concrete class void method

I'm trying to mock Lucenes IndexReader.close() to do nothing.

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.

What have I missed?

As the javadoc indicates, close() is a final method. And Mockito can't mock final methods .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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