MockMvc Помещает запрос — требуемый тип: RequestBuilder, При условии: запрос, пытается обновить пользователя в тесте

#spring #spring-boot #unit-testing #testing #mockmvc

#весна #пружинный ботинок #модульное тестирование #тестирование #mockmvc

Вопрос:

Я пытаюсь протестировать свой класс UserController, и один из разработанных мной тестов не работает, я не могу найти никаких ресурсов, касающихся того, как это сделать, поэтому попытался разобраться в этом самостоятельно и не смог.

 Required type: RequestBuilder  Provided: RequestEntity lt;java.lang.Stringgt;  

Способ управления:

 @PutMapping("/{id}")  public ResponseEntity updatePlayer(@PathVariable Long id, @RequestBody User user) {  User currentUser = userService.updateUser(id, user);  return ResponseEntity.ok(currentUser);  }  

Способ обслуживания:

 public User updateUser(Long id, User user) {  User currentUser = userRepository.findById(id).orElseThrow(RuntimeException::new);  currentUser.setName(user.getName());  currentUser.setEmail(user.getEmail());  currentUser.setLocation(user.getPassword());  return userRepository.save(user);  }  

Тест:

 @Test  public void updateUser() throws Exception {   String token = signupAndLogin();   User user = userRepository.findByUsername("magnuscarlsen");  //Updating user with new location.  user.setLocation("Cairo");   MvcResult mvcResult = mvc.perform(put("/users/1")  .contentType(MediaType.APPLICATION_JSON)  .header("Authorization", token)  .body(asJsonString(user));   String jsonResult = mvcResult.getResponse().getContentAsString();  System.out.println(jsonResult);  }  

Я планирую добавлять утверждения, когда приведенный выше код работает и пользователь обновляется, и ошибка не возникает.

Как я могу протестировать запрос PUT для метода контроллера, который имеет параметры переменной пути и объекта пользователя?

Спасибо за любую помощь!