我正在为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吗?

提前致谢。

最佳答案

组件ID由JSF Framework生成。
如果您使用核心JUnit来测试处理组件ID的方法,那么谁将生成ID。
这就是为什么测试JSF应用程序是最难的部分。
这样的场景需要的框架不仅仅是像JSFUnit这样的JUnit。

关于java - 执行JUnit测试时在JSF中找不到组件ID,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17989988/

10-11 05:06