Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何JUnit测试Wicket页面_Java_Spring_Testing_Junit_Wicket - Fatal编程技术网

Java 如何JUnit测试Wicket页面

Java 如何JUnit测试Wicket页面,java,spring,testing,junit,wicket,Java,Spring,Testing,Junit,Wicket,我有以下Wicket页面,提供PDF格式: public class TestPage extends WebPage { public TestPage(PageParameters pageParameters) { String param1 = pageParameters.get("test").toString(); String param2 = pageParameters.get("test1").toString();

我有以下Wicket页面,提供PDF格式:

public class TestPage extends WebPage {    
  public TestPage(PageParameters pageParameters) {
        String param1 = pageParameters.get("test").toString();
        String param2 = pageParameters.get("test1").toString();
        [..]
        try {       
            byte[] generatedPDF= generatePDF(param1, param2, pdfGenerationOptions);
                RequestCycle requestCycle = RequestCycle.get();
                HttpServletRequest request = (HttpServletRequest) requestCycle.getRequest().getContainerRequest();
                requestCycle.replaceAllRequestHandlers(new ResourceRequestHandler(new PDFResource("test.pdf", request.getHeader(USER_AGENT), true), null));
        } catch (PdfGenerationException | IOException e) {
            LOGGER.error("error", e);
            new PageProvider(ErrorPage.class);
        }
    }

    @Override
    public void renderPage() {
        // left blank
    }
}
既然在这种情况下我只能调用构造函数,那么如何测试页面是否返回字节数组(pdf)或ErrorPage.class


提前感谢

我建议您使用已装载的资源,而不是提供二进制数据(pdf)的页面

关于测试:

要测试页面,请执行以下操作:

WicketTester tester = new WicketTester();
PageParameters parameters = new PageParameters();
parameters.set("test", "TEST");
parameters.set("test1", "TEST1");
tester.startPage(TestPage.class, parameters);
// tester.startResourceReference(TestResRef.class, parameters); 
1) 在成功的情况下,使用
tester.getResponse().getBinaryContent()
获取
字节[]
并断言其内容


2) 在不成功的情况下,只需使用
tester.assertrenderpage(ErrorPage.class)

一些建议。你在构造器中做的事情太多了,它应该保持简单。