You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JUnit测试含ModelAndView参数方法时遇对象为空问题求助

解决JUnit测试中ModelAndView传入null的问题

你的测试代码里的modelAndView变量未进行实例化,直接作为参数传入方法,自然是null值,导致方法内调用modelAndView.setViewName()时无法正常执行,甚至会抛出空指针异常。

修正后的测试代码如下:

public class ANFCategoryDisplayBrowsingViewControllerTest {

    @Test
    public void testRedirect() {
        ANFCategoryDisplayBrowsingViewController categoryController = new ANFCategoryDisplayBrowsingViewController();
        MockHttpServletRequest mockRequest = new MockHttpServletRequest();
        // 关键步骤:实例化ModelAndView对象
        ModelAndView modelAndView = new ModelAndView();
        
        categoryController.redirectToHomePage("10051", "-1", "10901", modelAndView, "10001", mockRequest);
        
        assertEquals("Redirect:StoreView?Id=190", modelAndView.getViewName());
    }
}

额外说明:

  • 按照JUnit编码规范,测试方法名建议以小写字母开头(如testRedirect),这是行业通用的命名习惯。
  • 由于redirectToHomePage是protected权限方法,直接实例化类调用是可行的;如果该方法依赖其他Spring Bean,后续可能需要结合@Autowired或Mockito做依赖注入,但当前场景下直接实例化即可完成测试。

内容的提问来源于stack exchange,提问作者sanvica

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 05:43:15