Simule o botão Back/Forward/Refresh no teste de unidade com wicket
-
23-09-2019 - |
Pergunta
Eu gostaria de testar o teste de unidade (JUNIT 4) O comportamento das minhas páginas quando o botão traseiro do navegador (ou avançar ou atualizar) é clicado.
De alguma forma, posso simular os botões de volta/para frente/atualização do navegador em um teste de unidade? Existe uma classe de utilidade que fornece essa funcionalidade?
2ª edição:
Entendo que as instalações de teste de wicket não simulam um navegador com uma história completa. Pelo meu entendimento, eu precisaria das duas coisas a seguir para simular o comportamento de um navegador a partir de um teste de unidade:
(1) Wicket precisa me dizer qual solicitação exata (por exemplo, URL) é feita quando eu ligo WicketTester.startPage()
ou WicketTester.clickLink()
.
(2) O wicket deve processar a mesma solicitação novamente, por exemplo, aceitando o URL anteriormente registrado por (1).
Eu quero fazer isso de uma maneira que seja compatível com WicketTester
, FormTester
E assim por diante, enquanto estou usando os localizadores de componentes, as afirmações e uma funcionalidade mais boa nessas classes. Isso significa que eu tenho que emitir as solicitações de instalações de wicket e não de clientes externos como httpunit / htmlunit / selenium.
Solução
Você não pode simular a funcionalidade "de volta" nos testes de unidade de postigos, ela está completamente fora do escopo do que o wicket faz, no entanto, você pode testar quase tudo que acontecerá quando clicar
Poste algo mais específico sobre o que você está tentando testar, geralmente um botão de volta apenas lhe dá um monte de componentes "desanexados" no wicket, e você pode testá -los
Outras dicas
tente fabric.js .
Ele desenha coisas na tela e tem importação / exportação SVG.
Ele lida com as formas e caminhos comuns do SVG.O padrão SVG completo (fontes, por exemplo) não é suportado, mas talvez seja só necessário usar um subconjunto dele.
Verificação de saída Htmlunit, você pode imitar eventos de volta e avançar usando o História classe.
@Test
public void testHistory() throws IOException {
// Create a web client
final WebClient webClient = new WebClient();
// Surf to a page
final HtmlPage page = webClient.getPage("http://htmlunit.sourceforge.net/");
// Click "Get started" link
page.getAnchorByHref("gettingStarted.html").click();
// Get History
History history = webClient.getCurrentWindow().getHistory();
// Current page
assertEquals("http://htmlunit.sourceforge.net/gettingStarted.html",
history.getUrl(history.getIndex()).toString());
// Go back one page
history.back();
assertEquals("http://htmlunit.sourceforge.net/",
history.getUrl(history.getIndex()).toString());
}