#wicket
#калитка
Вопрос:
У меня есть компонент, который позволяет пользователю загружать файл Excel после нажатия на ссылку. Это работает, и все в порядке, но я не знаю, как написать тест для этого компонента. Я хочу написать тест, чтобы проверить, отправляется ли файл клиенту после нажатия на ссылку.
Итак, мой компонент выглядит следующим образом
Linklt;Voidgt; calculationsLink = new Linklt;gt;("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); lt;-- link is located in a HomePage tester.clickLink("navBar:calculations", false); lt;-- link is clickable tester.getResponse();//???? tester.assert???(?????); lt;-- how to assert and what to assert? }
Ответ №1:
Вы должны использовать tester.getLastResponse()
и утверждать его свойства.
tester.getResponse()
является ответом MockHttpServletResponse, который будет использоваться для следующего HTTP-вызова.
Некоторые фиктивные примеры:
assertEquals("application/octet-stream", tester.getLastResponse().getContentType()); assertEquals(3, tester.getLastResponse().getBinaryContent().length); assertArrayEquals(new byte[] {1, 2, 3}, tester.getLastResponse().getBinaryContent());