0

所以我的应用程序在JSF 1.2上运行,并使用Spring Beans IOC根据 Spring Context XML 配置将类注入到 Backing Beans 中。

我正在使用JSFUnit进行测试,我可以浏览页面并断言我的 Backing Bean 值,但是我还无法访问任何注入的 bean。

我知道 JSFUnit 被宣传做白盒测试,但到目前为止我只能做类似于用 Arquilian 进行的容器内测试的东西。

一旦我打开与支持 Bean 相关的页面,谁能帮助我访问我拥有的业务对象(由 Spring 注入)?谢谢 !

4

1 回答 1

0

我找到了答案,一旦你导航到你的页面,你可以在你的测试用例中调用这个方法,它只是通过bean name返回 bean ,它非常简洁:

@SuppressWarnings("unchecked")
public static <T> T findBean(String beanName) {
    FacesContext context = FacesContext.getCurrentInstance();
    return (T) context.getApplication().evaluateExpressionGet(context, "#{"+beanName+"}", Object.class);
}

现在 JSFUnit 变得更加有用了!

于 2016-03-08T16:43:49.937 回答