Spock模拟父类方法

时间:2016-04-19 06:02:08

标签: java unit-testing spock

我有一个看起来像这样的方法

public class BookItemReader extends StaxEventItemReader<Book> {
   protected List<Book> doRead() {
    List<Book> bookList= null;
    try {
        bookList = convertToBookImport((Book) super.doRead());
    } catch (Exception ex) {
        //do nothign
    }
    return bookList;
   }
}

对于上述方法,我试图通过模拟方法super.doRead()

来编写测试
StaxEventItemReader<Book> staxEventItemReader = Spy(StaxEventItemReader) 
staxEventItemReader.doRead() >> new Book()

但是,控件正在调用超类方法doRead。有人可以指导我模拟这个super类方法,以便我可以停止在测试中调用超类方法吗?

我尝试了this solution,但模拟是指子类方法。

BookItemReader reader = Mockito.spy(new BookItemReader ())
Mockito.doReturn(new Book()).when((StaxEventItemReader) reader).doRead()

0 个答案:

没有答案