2011-05-13 93 views
0

我在编写JUnit测试我的应用程序的过程中,我想知道我怎么可以测试下面的类一个Spring类:测试扩展AbstractPdfView

public class PdfBottomCheckView extends AbstractPdfView { 

    @Override 
    protected void buildPdfDocument(Map<String, Object> model, Document document, PdfWriter writer, 
      HttpServletRequest request, HttpServletResponse response) throws Exception { 

     MyObjet1 object1 = (MyObject1) model.get("object1"); 
     MyObject2 object2= (MyObject2) model.get("object2"); 

     HelperClass helper= new HelpClass(getMessageSourceAccessor(), getServletContext()); 

     helper.writeLogo(document); 
     helper.writeFooter(document, writer); 

     document.add(help.generateOutput(object1, object2, 105, new int[]{55,20,30}, helper.getNormalFont()));  } 
} 

还有就是我是如何实现一个完整的例子这与春天here

我发现另一个网站,显示你可以比较byte []测试pdf输出。该文章是here(向下滚动到标题'生产正确的二进制输出')

我收到一个错误,在辅助线上运行测试。我如何模拟或传递Helper类的有效值?我使用Spring 3.0.5,jUnit 4和Mockito 1.8.5。

谢谢

+0

你准确得到了什么错误? – abalogh 2011-05-13 21:23:00

+0

java.lang.IllegalStateException:ApplicationObjectSupport实例[com.test.PdfBottomCheckView:unnamed]不在ApplicationContext中运行 – blong824 2011-05-13 22:19:50

回答

0

创建一个工厂类,生成助手。将工厂类作为构造函数arg传递给您的PdfBottomCheckView。他们在你的测试中嘲笑你的工厂,从那里你可以生成一个模拟助手类。

如果您不使用Mockito,请使用它。