1

jsf Bean の Junit テストケースを作成しています。コードは以下のとおりです。

public void createKey(final ActionEvent event)
{
LOGGER.info("CreateKeyBean createKey method called...");
final long moduleIdLong = Long.parseLong(moduleid);

try {
    labeldbservice.createKey(moduleIdLong, key);
    labeldbservice.saveTranslation(null, moduleIdLong, Locale.ENGLISH.toString(), key, text);

    FacesMessageUtil.addStatusMessage(LabeldbUtils.CREATE_TOP_PANEL, LabeldbUtils.CREATE_KEY_LABEL, null);

} catch (Exception e) {
    LOGGER.error(e);
    FacesMessageUtil.addGlobalUnexpectedErrorMessage();
    FacesMessageUtil.addStatusMessage(LabeldbUtils.CREATE_TOP_PANEL, LabeldbUtils.ERROR_LABEL_MSG, null);
}
}

サービスを呼び出した後、上記のメソッドをテストしています。コンポーネント id(FacesMessageUtil.addStatusMessage(''')) でステータス メッセージを UI に送信しています。

私の質問は次のとおりです。このメソッドを呼び出している間に :FacesMessageUtil.addStatusMessage(''')) コンポーネント ID が見つからないという例外が発生しました。JUnit からコンポーネント ID を設定する方法を教えてください。

前もって感謝します。

4

1 に答える 1

0

コンポーネント ID は JSF フレームワークによって生成されます。
コンポーネント ID を処理するメソッドをテストするためにコア JUnit を使用している場合、ID を生成しているのは誰ですか。
そのため、JSF アプリケーションのテストは最も難しい部分です。このようなシナリオでは、 JSFUnit
のような JUnit 以上のフレームワークが必要です。

于 2013-08-01T10:54:16.687 に答える