3

ブラウザの戻るボタン(または進むまたは更新)がクリックされたときのページの動作を単体テスト(jUnit 4)したいと思います。

単体テストでブラウザの戻る/進む/更新ボタンをシミュレートできますか? そのような機能を提供するユーティリティ クラスはありますか?

2回目の編集:

Wicket のテスト機能は、完全な履歴を持つブラウザーをシミュレートしないことを理解しています。私の理解では、単体テストからブラウザーの動作をシミュレートするには、次の 2 つのものが必要です。

WicketTester.startPage()(1) Wicket は、またはを呼び出したときに、正確な要求 (URL など) を通知する必要がありWicketTester.clickLink()ます。

(2) Wicket は、(1) によって以前に記録された URL を受け入れるなど、同じ要求を再度処理する必要があります。

などと互換性のある方法でこれを行いたいと考えています。これらのクラスでコンポーネント ファインダー、アサートWicketTesterFormTesterおよびその他の優れた機能を使用しているためです。つまり、HttpUnit / HtmlUnit / Selenium などの外部クライアントからではなく、Wicket 機能からリクエストを発行する必要があります。

4

3 に答える 3

1

HtmlUnitを確認してください。 Historyクラスを使用して前後のイベントを模倣できます。

@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());
}
于 2010-02-27T16:48:22.597 に答える
1

これは、リソースを節約するために戻るボタンをサポートしていないダミーの WebApplication を明示的に使用する WicketTester ではサポートされていません。

Wicket でシミュレートするのは大変だと思います...

Selenium RCなどのブラウザベースのテスト ツールを使用することをお勧めします。自分で試したことはありませんがgoBack()、ブラウザの戻るボタンのクリックをシミュレートするメソッドがあります。

于 2010-02-27T16:32:22.517 に答える
0

ウィケット単体テストで「戻る」機能をシミュレートすることはできません。これは完全にウィケットが行うことの範囲外ですが、戻るをクリックしたときに発生するほとんどすべてをテストできます

テストしようとしているものについてより具体的なものを投稿してください。通常、戻るボタンを押すと、ウィケットに「切り離された」コンポーネントがたくさん表示され、それらをテストできます

于 2010-03-02T01:52:48.720 に答える