#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 для метода контроллера, который имеет параметры переменной пути и объекта пользователя?
Спасибо за любую помощь!