间谍:存根方法调用

时间:2017-11-02 10:25:24

标签: java unit-testing mockito powermock spy

我想从以下类中继承jasperreports方法调用:

 public class JRPdfExporter extends JRAbstractExporter<PdfReportConfiguration, PdfExporterConfiguration, OutputStreamExporterOutput, JRPdfExporterContext> {

在我的测试中,我有:

JRExporter jrPdfExporter = spy(new JRPdfExporter());
doNothing().when(jrPdfExporter).exportReport();

但似乎我的假设在这里被忽略了。在exportReport()方法调用期间,我仍然得到NullPointerException。

我们如何解决这个问题?

编辑:

我测试的班级Exporter初始化如下:

protected JRExporter getPdfExporter()
{
    JRExporter exporter = new JRPdfExporter();
    exporter.setParameter(
    // several params setting
    return exporter;
}

然后它会这样调用:

exporter.exportReport();

我尝试使用PowerMockito,但它也没有帮助:

JRPdfExporter jrPdfExporter = PowerMockito.mock(JRPdfExporter.class);
PowerMockito.whenNew(JRPdfExporter.class).withNoArguments().thenReturn(jrPdfExporter);
PowerMockito.doNothing().when(jrPdfExporter).exportReport();

0 个答案:

没有答案