Spy*_*_av 5 java junit spring spring-boot mockmvc
在类外使用@RequestMapping批注的声明错误
我收到此错误消息:
java.lang.AssertionError: Status
Expected :200
Actual :404
Run Code Online (Sandbox Code Playgroud)
我的控制器就是这样
@Service
@RestController
@RequestMapping("/execute/files")
@ResponseBody
public class ControllerFiles {
@Autowired
@Qualifier("fileRunner")
ProcessRunnerInterface processRunnerInterfaceFiles;
public InputState executeRestFile(@RequestParam String name) throws ExecutionFailedException, URISyntaxException {
///code///
}
public List<String>....{
///code///
}
}
Run Code Online (Sandbox Code Playgroud)
我的测试
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest
@AutoConfigureMockMvc
public class ControllerFilesTest {
@Autowired
private MockMvc mockMvc;
@Autowired
ControllerFiles controllerFiles;
@Test
public void testSpringMvcGetFiles() throws Exception {
this.mockMvc.perform(get("/execute/files").param("name", "Spring Community Files"))
.andDo(print()).andExpect(status().isOk());
}
}
Run Code Online (Sandbox Code Playgroud)
但是当我有这样的代码时,测试工作正常!
@Service
@RestController
public class ControllerFiles {
@Autowired
@Qualifier("fileRunner")
ProcessRunnerInterface processRunnerInterfaceFiles;
@RequestMapping("/execute/files")
@ResponseBody
public InputState executeRestFile(@RequestParam String name) throws ExecutionFailedException, URISyntaxException {
///code///
}
public List<String>....{
///code///
}
}
Run Code Online (Sandbox Code Playgroud)
任何想法出了什么问题?
如果您希望将 RestController 中的方法作为请求资源选取,则需要将它们标记为 @RequestMapping。如果您想将基本请求映射保留在控制器级别,就像在第一个 RestController 中一样,那么您需要执行以下操作:
@RestController
@RequestMapping("my/path")
public class MyController {
@RequestMapping("/")
public InputState myMethod() {
...
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5934 次 |
| 最近记录: |