在设置
MockMvc配置时,您会注意到没有指定部署描述符的位置web.xml。那是因为
MockMvc不会测试您对的配置
DispatcherServlet。它测试您的MVC配置,
@Controllerbean等。
如果您查看源代码,则
MockMvc创建一个
TestDispatcherServlet可加载和使用您的Web应用程序上下文的。
换句话说,servlet
url-pattern路径与无关
MockMvc。您发出的请求好像没有这样的路径。
你说
我希望像实际情况一样在测试中映射控制器。
您将需要使用其他测试策略。完全部署您的Web应用程序,并使用HTTP客户端发出请求并验证您获得的回报。
您已标记了
unit-testing。完整环境中的测试不是单元测试,而是集成和系统测试。
请注意
@Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/api/**").addResourceLocations("/");}与以上无关。其目的是从Web应用程序中的某些路径提供静态资源。它与您的servlet
url-pattern或控制器的路径无关。



