在名称为“”的 DispatcherServlet 中找不到具有 URI [] 的 HTTP 请求的映射
No mapping found for HTTP request with URI [ ] in DispatcherServlet with name ''
我这样修改了我的测试:
@SpringBootTest
@WebAppConfiguration
@ContextConfiguration(classes = {CoreTestSpringConfiguration.class})
@RunWith(SpringRunner.class)
public class NewStudentTest {
@Autowired
protected WebApplicationContext wac;
protected MockMvc mockMvc;
@MockBean
SaveStudentCommand saveStudentCommand;
@Before
public void setupMockMvc() {
mockMvc = MockMvcBuilders
.webAppContextSetup(wac)
.build();
}
@Test
public void createStudentTest() throws Exception {
String jsonLineTest = "[{username:\"532g326\"} ,{name:\"Franco\"} ,{username:\"432ih4j\"} ,{name:\"Ciccio\"} ]";
Student s1 = new Student();
Student s2 = new Student();
List<Student> students = new ArrayList<>();
((Student) s1).setUsername("532g326");
((Student) s1).setName("Franco");
((Student) s2).setUsername("432ih4j");
((Student) s2).setName("Ciccio");
students.add(s1);
students.add(s2);
when(saveStudentCommand.execute()).thenReturn(jsonLineTest);
MvcResult result=mockMvc.perform(post("/credentials/student")
.accept(MediaType.APPLICATION_JSON).accept(MediaType.APPLICATION_JSON).content(jsonLineTest))
.andDo(print())
.andExpect(status().isOk())
.andReturn();
String content=result.getResponse().getContentAsString();
}
}
现在,根据这个新配置,测试失败,显示:
java.lang.AssertionError:预期状态:<200> 但为 <404>。
我想这个答案是由控制台中显示的相同问题引起的:
在名称为“”的 DispatcherServlet 中找不到具有 URI [/credentials/student] 的 HTTP 请求的映射;
我无法理解上面的最后一条消息。找不到哪个DispatcherServlet?我该如何解决这个问题?提前致谢
Spring.io Getting Started pages for testing requests 上有一个很好的教程,如果您刚开始学习 Spring 如果您正在做测试,我会从这里开始。
它通过一个循序渐进的过程为 HTTP 请求构建整个测试套件,应该对您有所帮助。 (他们在指南中途介绍了MockMvc,并使用@AutoConfigureMockMvc
注解而不是自己进行任何配置)
我这样修改了我的测试:
@SpringBootTest
@WebAppConfiguration
@ContextConfiguration(classes = {CoreTestSpringConfiguration.class})
@RunWith(SpringRunner.class)
public class NewStudentTest {
@Autowired
protected WebApplicationContext wac;
protected MockMvc mockMvc;
@MockBean
SaveStudentCommand saveStudentCommand;
@Before
public void setupMockMvc() {
mockMvc = MockMvcBuilders
.webAppContextSetup(wac)
.build();
}
@Test
public void createStudentTest() throws Exception {
String jsonLineTest = "[{username:\"532g326\"} ,{name:\"Franco\"} ,{username:\"432ih4j\"} ,{name:\"Ciccio\"} ]";
Student s1 = new Student();
Student s2 = new Student();
List<Student> students = new ArrayList<>();
((Student) s1).setUsername("532g326");
((Student) s1).setName("Franco");
((Student) s2).setUsername("432ih4j");
((Student) s2).setName("Ciccio");
students.add(s1);
students.add(s2);
when(saveStudentCommand.execute()).thenReturn(jsonLineTest);
MvcResult result=mockMvc.perform(post("/credentials/student")
.accept(MediaType.APPLICATION_JSON).accept(MediaType.APPLICATION_JSON).content(jsonLineTest))
.andDo(print())
.andExpect(status().isOk())
.andReturn();
String content=result.getResponse().getContentAsString();
}
}
现在,根据这个新配置,测试失败,显示: java.lang.AssertionError:预期状态:<200> 但为 <404>。
我想这个答案是由控制台中显示的相同问题引起的:
在名称为“”的 DispatcherServlet 中找不到具有 URI [/credentials/student] 的 HTTP 请求的映射;
我无法理解上面的最后一条消息。找不到哪个DispatcherServlet?我该如何解决这个问题?提前致谢
Spring.io Getting Started pages for testing requests 上有一个很好的教程,如果您刚开始学习 Spring 如果您正在做测试,我会从这里开始。
它通过一个循序渐进的过程为 HTTP 请求构建整个测试套件,应该对您有所帮助。 (他们在指南中途介绍了MockMvc,并使用@AutoConfigureMockMvc
注解而不是自己进行任何配置)