首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >wicket 9:如何测试下载资源

wicket 9:如何测试下载资源
EN

Stack Overflow用户
提问于 2021-12-07 19:03:09
回答 1查看 113关注 0票数 0

我有一个组件,允许用户在单击链接后下载excel文件。它工作正常,一切都很好,但我不知道如何为这个组件编写测试。我想写一个测试,以检查是否在按下链接后,将文件发送到客户端。

所以,我的组件看起来像这样

代码语言:javascript
复制
Link<Void> calculationsLink = new Link<>("calculationsLink") {
    @Override
    public void onClick() {

        AbstractResourceStreamWriter rStream =
                new AbstractResourceStreamWriter() {

                    @Override
                    public void write(OutputStream output)
                            throws IOException {
                        output.write(MyApp.class
                                .getResourceAsStream(pathToCalculations)
                                .readAllBytes());
                    }
                };

        ResourceStreamRequestHandler handler =
                new ResourceStreamRequestHandler(rStream, "calculations.xslx");
        getRequestCycle().scheduleRequestHandlerAfterCurrent(handler);
    }
};

我的测试是

代码语言:javascript
复制
@Test
public void calculations_file_downloaded_Successfully() {
    // then start and render the base page
    tester.startPage(HomePage.class); <-- link is located in a HomePage

    tester.clickLink("navBar:calculations", false); <-- link is clickable 
    tester.getResponse();//????

    tester.assert???(?????); <-- how to assert and what to assert?
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-07 20:09:08

您应该使用tester.getLastResponse()并对其属性进行断言。

tester.getResponse()是将用于下一个HTTP调用的MockHttpServletResponse。

一些虚假的例子:

代码语言:javascript
复制
assertEquals("application/octet-stream", tester.getLastResponse().getContentType());
assertEquals(3, tester.getLastResponse().getBinaryContent().length);
assertArrayEquals(new byte[] {1, 2, 3}, tester.getLastResponse().getBinaryContent());
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70265657

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档