Java 如何在JSF1.2上使用JSFUnit获得SpringIoCbean
因此,我的应用程序运行在jsf1.2上,并使用springbean IOC根据springcontextxml配置将类注入到支持bean中 我正在使用JSFUnit进行测试,我可以在页面中导航并在我的支持Bean值上断言,但是我还无法访问任何注入的Bean 我知道JSFUnit被宣传做白盒测试,但到目前为止,我只能做类似于用Arquilian做的容器内测试的事情Java 如何在JSF1.2上使用JSFUnit获得SpringIoCbean,java,spring,jsf,junit,jsfunit,Java,Spring,Jsf,Junit,Jsfunit,因此,我的应用程序运行在jsf1.2上,并使用springbean IOC根据springcontextxml配置将类注入到支持bean中 我正在使用JSFUnit进行测试,我可以在页面中导航并在我的支持Bean值上断言,但是我还无法访问任何注入的Bean 我知道JSFUnit被宣传做白盒测试,但到目前为止,我只能做类似于用Arquilian做的容器内测试的事情 一旦我打开与支持Bean相关的页面,有人能帮助我访问我已经(由Spring注入的)业务对象吗?谢谢 我找到了答案,一旦你导航到你的页面
一旦我打开与支持Bean相关的页面,有人能帮助我访问我已经(由Spring注入的)业务对象吗?谢谢 我找到了答案,一旦你导航到你的页面,你可以在你的测试用例中调用这个方法,这个方法只需按bean名称返回bean,它非常简洁:
@SuppressWarnings("unchecked")
public static <T> T findBean(String beanName) {
FacesContext context = FacesContext.getCurrentInstance();
return (T) context.getApplication().evaluateExpressionGet(context, "#{"+beanName+"}", Object.class);
}
@SuppressWarnings(“未选中”)
公共静态T findBean(字符串beanName){
FacesContext context=FacesContext.getCurrentInstance();
return(T)context.getApplication().evaluateExpressionGet(context,“#{”+beanName+“}”,Object.class);
}
现在JSF单元变得更有用了