Simulieren vor / zurück / Refresh-Button in Unit-Test mit Wicket
-
23-09-2019 - |
Frage
ich Unit-Test möchte (jUnit 4) das Verhalten meiner Seiten, wenn der Zurück-Button des Browsers (oder nach vorne oder Refresh) angeklickt wird.
Kann ich simulieren irgendwie den Browser des Vor / Zurück / Refresh-Tasten in einem Unit-Test? Gibt es eine Utility-Klasse, die eine solche Funktionalität bietet?
2. Edit:
Ich verstehe, dass die Wicket Prüfanlagen keinen Browser mit voller Geschichte simulieren. Von meinem Verständnis habe ich die folgenden zwei Dinge musste ein Browser-Verhalten von einem Unit-Test zu simulieren:
(1) Wicket hat mir zu sagen, was genau Anfrage (zum Beispiel URL) gemacht wird, wenn ich WicketTester.startPage()
oder WicketTester.clickLink()
nennen.
(2) Wicket hat dieselbe Anforderung erneut zu verarbeiten, z.B. indem Sie die URL zuvor aufgezeichnete Annahme von (1).
Ich möchte dies in einer Art und Weise tun, die mit WicketTester
, FormTester
kompatibel ist und so weiter, als ich die Komponente Findern bin mit behauptet und netteres Funktionalität in diesen Klassen. Das bedeutet, dass ich die Anfragen von Wicket Einrichtungen erlassen und nicht von externen Clients wie Httpunit / Htmlunit / Selen.
Lösung
Sie können nicht simulieren „zurück“ Funktionalität in Wicket Unit-Tests ist es ganz aus dem Rahmen dessen, was Wicket der Fall ist, können Sie jedoch fast alles testen, was passieren wird, wenn Sie auf zurück
post etwas genauer zu wissen, was Sie zu Test versuchen, in der Regel eine Zurück-Taste werden Sie nur ein paar „freistehend“ Komponenten in Wicket und Sie können diese
testenAndere Tipps
Das ist ziemlich sicher nicht von WicketTester unterstützt, die explizit eine Attrappe verwendet WebApplication nicht die Zurück-Taste unterstützenden Ressourcen zu speichern.
Ich vermute, es wäre schmerzhaft in Wicket zu simulieren ...
Ihre beste Wette könnte sein, einen Browser-basierten zu verwenden Test-Tool wie Selenium RC . Ich habe es selbst nicht ausprobiert, aber es hat eine goBack()
Methode, die einen Klick auf der Browserrücktaste simulieren wird.
Schauen Sie sich Htmlunit , können Sie imitieren zurück und vorwärts Ereignisse mit der Geschichte Klasse.
@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());
}