Domanda

Mi piacerebbe test di unità (JUnit 4) il comportamento delle mie pagine, quando il pulsante Indietro del browser (o in avanti o aggiornare) si fa clic.

Posso in qualche modo simulare i pulsanti avanti / indietro / aggiornamento del suo navigatore web in una prova di unità? C'è una classe di utilità che fornisce tale funzionalità?

2 ° Edit:

Mi rendo conto che i centri di prova Wicket non simulare un browser con una storia completa. Dalla mia comprensione avrei bisogno i seguenti due cose per simulare il comportamento di un browser da una prova di unità:

(1) Wicket deve dirmi cosa richiesta (ad esempio URL) esatto è fatto quando chiamo WicketTester.startPage() o WicketTester.clickLink().

(2) Wicket deve elaborare la stessa richiesta di nuovo, per esempio accettando l'URL precedentemente registrato da (1).

Io voglio farlo in un modo che sia compatibile con WicketTester, FormTester e così via, come sto usando i cercatori di componenti, afferma, e più piacevole funzionalità in queste classi. Ciò significa che devo rilasciare le richieste da strutture Wicket e non da client esterni come HttpUnit / HtmlUnit / Selenio.

È stato utile?

Soluzione

Non si può simulare "indietro" funzionalità di test di unità wicket, è completamente fuori dalla portata di ciò wicket fa, si può comunque provare quasi tutto ciò che accadrà quando si fa clic su indietro

pubblicare qualcosa di più specifico su ciò che si sta cercando di testare, in genere un pulsante indietro sarà solo vi darà un po 'di componenti "distaccati" a cancelletto, e si può testare quelli

Altri suggerimenti

Questa non è quasi certamente sostenuto da WicketTester, che utilizza in modo esplicito una WebApplication fittizio che non supportano il pulsante indietro per risparmiare risorse.

Ho il sospetto che sarebbe stato doloroso per simulare in Wicket ...

La cosa migliore potrebbe essere quella di utilizzare uno strumento di test basato su browser come Selenio RC . Non ho provato io stesso, ma ha un metodo goBack() che simulerà un clic sul pulsante Indietro del browser.

HtmlUnit , è possibile imitare la schiena e gli eventi in avanti con il Storia 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());
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top