gpt4 book ai didi

java - 如何为 Action 监听器编写 JUnit?

转载 作者:行者123 更新时间:2023-12-02 05:29:05 26 4
gpt4 key购买 nike

我有一个带有按钮和单选按钮组(SelectOneRadio)的表单。单击单选按钮时,将触发 ajax 事件,并执行 Java cntroller 类中的监听器以进行某些计算。

**//Xhtml**
<p:selectOneRadio id="id_radio_group" value="#{bean.radioValue}">
<f:selectItem itemValue="a" itemLabel="a"></f:selectItem>
<f:selectItem itemValue="b" itemLabel="b"></f:selectItem>
<f:selectItem itemValue="c" itemLabel="c"></f:selectItem>
<f:selectItem itemValue="d" itemLabel="d"></f:selectItem>
<f:selectItem itemValue="e" itemLabel="e"></f:selectItem>
<f:ajax event="change" listener="#{controller.recordSelectedRadio}"></f:ajax>
</p:selectOneRadio>

**// Controller**
public void recordSelectedRadio(AjaxBehaviorEvent event) {

// Some logics to business specific
}

要为 Controller 中的recordSelectedRadio()编写Junit吗?我尝试创建新的 AjaxBehaviorEvent 对象。但是 AjaxBehaviorEvent 的构造函数需要 2 个参数 UIComponent 和 Behaviour。我可以将 UIComponent 作为 SelectOneRadio 获取。但我无法得到行为。

关于如何为 JSF 的 Ajax 监听器编写 JUnit 有什么想法吗?

最佳答案

通常,每个职责将代码分成不同的层,您应该问自己是否要测试某个操作监听器被调用(这或多或少是框架职责),或者更确切地说是该操作监听器背后的业务逻辑(这是商业责任)。用第二个答案回答这个问题,您应该重构您的代码,以便操作监听器调用一个可以单独测试的方法,无需任何框架知识,并且仅基于 JSF Controller 提供的输入数据。

关于java - 如何为 Action 监听器编写 JUnit?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25719201/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com