加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java.lang.AssertionError:预期状态:200实际:404

发布时间:2020-12-15 02:19:51 所属栏目:Java 来源:网络整理
导读:我收到此错误消息: java.lang.AssertionError: Status Expected :200 Actual :404 我的控制器是这样的 @Service @RestController @RequestMapping("/execute/files") @ResponseBody public class ControllerFiles { @Autowired @Qualifier("fileRunner") Pr
我收到此错误消息:

java.lang.AssertionError: Status 
    Expected :200
    Actual   :404

我的控制器是这样的

@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///
            }
        }

我的测试

@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());
        }
}

但是当我有这样的代码时,测试工作正常!

@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/// 
               }
}

出了什么问题?

解决方法

如果希望将它们作为请求资源获取,则需要将RestController中的方法标记为@RequestMapping.如果要像在第一个RestController中那样在控制器级别保留基本请求映射,则需要执行以下操作:

@RestController
@RequestMapping("my/path")
public class MyController {

   @RequestMapping("/")
   public InputState myMethod() {
     ...
   }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读