如何使用 JUnit 模拟 FacesContext?

发布于 2024-12-15 13:45:35 字数 848 浏览 4 评论 0原文

我正在使用 JUnit 4,

我想模拟 FacesContext 实例,在为包含 FacesContext 实例的方法编写测试用例时遇到空指针错误,类似的 DataBinding 和 BindignContainer .. 等等..

我在 Util 类中的方法:

public static String resolveUserPrincipal() {
    FacesContext facesContext = FacesContext.getCurrentInstance(); // here I am null
    ExternalContext ectx = facesContext.getExternalContext();
    HttpServletRequest request = (HttpServletRequest)ectx.getRequest();
    return request.getUserPrincipal().getName();
}

我的 TestCase 方法:

@Test
public void testResolveExpression() {
    JSFUtils utils = new JSFUtils();
    //utils.resolveExpression(null);
    System.out.println(utils.resolveUserPrincipal());
    System.out.println("============== "+FacesContext.getCurrentInstance());
}

谢谢!

I am using JUnit 4,

I want to Mock the FacesContext instance, I am getting nullpointer error while writing test case for the method that contains FacesContext instance, Similarly DataBinding and BindignContainer .. etc..

My method in Util class:

public static String resolveUserPrincipal() {
    FacesContext facesContext = FacesContext.getCurrentInstance(); // here I am null
    ExternalContext ectx = facesContext.getExternalContext();
    HttpServletRequest request = (HttpServletRequest)ectx.getRequest();
    return request.getUserPrincipal().getName();
}

My TestCase method:

@Test
public void testResolveExpression() {
    JSFUtils utils = new JSFUtils();
    //utils.resolveExpression(null);
    System.out.println(utils.resolveUserPrincipal());
    System.out.println("============== "+FacesContext.getCurrentInstance());
}

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文