0

いくつかのアプリケーションでいくつかのラベルを表明したいと思いlabel1ます。私は次のjunitテストケースを作成します。

wicketTester.assertLabel("label1", "Hello!");

ラベルが追加されているページは次のようになります。

FooPage.java

public class FooPage extends WebPage {

    public FooPage() {
        add(new Label("label1", "Hello!"));
    }
}

対応するhtmlページは次のようになります:FooPage.html

<body>
..
...

<div wicket:id="label1"></div>
..
<body>

誰かがリンクをクリックすると、ラベルlabel1(私が主張したい)が表示されます

<a wicket:id="fooId" href="FooPage">Foo</a>

次のページで:

<html xmlns:wicket="http://wicket.apache.org/">
<body>
    <wicket:panel>

            <div class="xxx">
                <a wicket:id="fooId"
                    href="FooPage">Foo</a>
            </div>
    </wicket:panel>
</body>
</html>

junitテストを実行すると、次のエラーが発生します。

path: 'label1' does not exist for page: BarPage

私の質問は:ラベルの正しいパスを取得する方法はlabel1

4

2 に答える 2

1

テストでリンク「fooId」をクリックしましたか(wicketTester.clickLinkを使用)?

于 2012-11-22T09:26:05.267 に答える
0

このようにコンポーネントパスを見つけることができます

WicketApplicationクラスを変更する

ウィケット7で

getDebugSettings().setComponentPathAttributeName("component_path");  

Wicket6以降の場合

getDebugSettings().setOutputComponentPath(true);

使用例:

@Override
public RuntimeConfigurationType getConfigurationType() {
    if (Boolean.valueOf(getProperty("development.mode"))) {
        //show component path in html tag
        getDebugSettings().setComponentPathAttributeName("component_path");
        return RuntimeConfigurationType.DEVELOPMENT;
    }       
    return RuntimeConfigurationType.DEPLOYMENT;
}

コンポーネントを調べると、Webブラウザから次のようなものが見つかります。

<input type="text" value="" component_path="pageContent_form_username" name="username" id="username3" >

次のように、すべての下線を(:)コロンで変更することを忘れないでください。

pageContent_form_username-> pageContent:form:username

于 2014-09-03T12:50:47.587 に答える