【发布时间】:2019-10-14 02:32:33
【问题描述】:
我有一个运行(和映射)正常的基本 SpringMVC 应用程序。 现在我想用 MockMvc 设置我的 UnitTests 来执行获取请求和东西。 但是,如果我运行测试,则会出现 AssertionError “预期状态: 但原为:”,并且我的控制台会发出警告“在 DispatcherServlet 中找不到带有 URI [/] 的 HTTP 请求的映射,名称为 ''”。 我感觉我的 MockMvc 无法与我的 DispatcherServlet 通信,那么我该如何定义这个连接呢?
这是我的简短测试课:
@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
@ContextConfiguration
public class HomeControllerTest {
private MockMvc mvc;
@Autowired
private WebApplicationContext wac;
@Before
public void setup() throws ServletException {
mvc = MockMvcBuilders.webAppContextSetup(wac).build();
}
@Test
public void testLandingPagePath() throws Exception {
mvc.perform(get("/")).andExpect(status().isOk());
}
}
所以我希望 MockMvc 默认获取我的 DispatcherServlet 的位置。但它实际上并没有调用它来映射。
我的“web.xml”和“dispatcher-servlet.xml”位于“WEB-INF”文件夹中,没有定义额外的配置。
我感觉问题出在我的项目结构上,但这是一个基本的 Eclipse“动态 Web 应用程序”,测试位于“src/test/java”,与“src/main/java”平行.
感谢您的帮助,因为我花了最后 2 个小时阅读解决方案,但没有得到诀窍。
【问题讨论】:
标签: junit4 spring-test