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
相关产品推荐
相关产品推荐

