我有一个组件,允许用户在单击链接后下载excel文件。它工作正常,一切都很好,但我不知道如何为这个组件编写测试。我想写一个测试,以检查是否在按下链接后,将文件发送到客户端。
所以,我的组件看起来像这样
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);
}
};我的测试是
@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?
}发布于 2021-12-07 20:09:08
您应该使用tester.getLastResponse()并对其属性进行断言。
tester.getResponse()是将用于下一个HTTP调用的MockHttpServletResponse。
一些虚假的例子:
assertEquals("application/octet-stream", tester.getLastResponse().getContentType());
assertEquals(3, tester.getLastResponse().getBinaryContent().length);
assertArrayEquals(new byte[] {1, 2, 3}, tester.getLastResponse().getBinaryContent());https://stackoverflow.com/questions/70265657
复制相似问题