【问题标题】:Testing a Spring class that extends AbstractPdfView测试扩展 AbstractPdfView 的 Spring 类
【发布时间】:2011-05-13 18:10:43
【问题描述】:

我正在为我的应用程序编写 jUnit 测试,我想知道如何测试以下类:

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()));      }
}

有一个完整的例子说明我是如何用 spring here 实现这个的

我发现另一个网站显示您可以比较 byte[] 来测试 pdf 输出。那篇文章是here(向下滚动到标题“生成正确的二进制输出”)

我在帮助行上运行测试时遇到错误。如何模拟或传递 Helper 类的有效值?我正在使用 Spring 3.0.5、jUnit 4 和 Mockito 1.8.5。

谢谢

【问题讨论】:

  • 你到底遇到了什么错误?
  • java.lang.IllegalStateException: ApplicationObjectSupport 实例 [com.test.PdfBottomCheckView: unnamed] 不在 ApplicationContext 中运行

标签: java spring testing pdf junit


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-30
    • 1970-01-01
    • 1970-01-01
    • 2012-03-14
    相关资源
    最近更新 更多