На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Следующие правила действуют в данном разделе в дополнение к общим Правилам Форума
1. Здесь обсуждается Java, а не JavaScript! Огромная просьба, по вопросам, связанным с JavaScript, SSI и им подобным обращаться в раздел WWW Masters или, на крайний случай, в Многошум.
2. В случае, если у вас возникают сомнения, в каком разделе следует задать свой вопрос, помещайте его в корневую ветку форума Java. В случае необходимости, он будет перемещен модераторами (с сохранением ссылки в корневом разделе).

3. Запрещается создавать темы с просьбой выполнить какую-то работу за автора темы. Форум является средством общения и общего поиска решения. Вашу работу за Вас никто выполнять не будет.
4. Не рекомендуется создавать несколько несвязанных вопросов в одной теме. Пожалуйста, создавайте по одной теме на вопрос.
Модераторы: dark_barker, wind
  
> Mockito тестирование контроллера
    Всем привет

    Изучаю тему тестирования и столкнулся с ошибкой которая не понятна для меня. Если кто может подсказать в чем проблема и как ее решить буду признателен.

    class Person:
    ExpandedWrap disabled
      @Entity
      @Setter
      @Getter
      @Table(name = "person")
      public class Person {
          @Id
          @GeneratedValue(strategy = GenerationType.IDENTITY)
          private Integer id;
          private String firstName;
          private String lastName;
          private String patronymicName;
          private Integer age;
       
          public Person(String firstName, String lastName, Integer age) {
              this.firstName = firstName;
              this.lastName = lastName;
              this.age = age;
          }
      }




    PersonRepository:
    ExpandedWrap disabled
      public interface PersonRepository extends JpaRepository<Person, Integer> {
      }


    PersonService:
    ExpandedWrap disabled
      @Service
      public class PersonService {
          private final PersonRepository personRepository;
       
          public PersonService(PersonRepository personRepository) {
              this.personRepository = personRepository;
          }
       
          public Person save(Person person) {
              return personRepository.save(person);
          }
      }


    PersonController:
    ExpandedWrap disabled
      @RestController
      @RequestMapping("/api/person")
      public class PersonController {
          private final PersonService personService;
       
          public PersonController(PersonService personService) {
              this.personService = personService;
          }
       
          @PostMapping("/savePerson")
          public Person savePerson(@RequestBody Person person) {
              return personService.save(person);
          }
      }


    PersonTest:
    ExpandedWrap disabled
      @WebMvcTest(controllers = PersonController.class)
      class PersonControllerTest {
          @MockBean
          private PersonService personService;
       
          @Autowired
          private MockMvc mockMVc;
          @Autowired
          private ObjectMapper objectMapper;
       
          @Test
          void savePerson() throws Exception {
              Person person = new Person("Ivan", "Ivanov", 34);
       
              when(personService.save(person)).thenReturn(person);
       
                      mockMVc.perform(post("/api/person/savePerson")
                                      .contentType(MediaType.APPLICATION_JSON)
                                      .content(objectMapper.writeValueAsString(person)))
                      .andExpect(status().isOk())
                      .andExpect(jsonPath("$.firstName").value(person.getFirstName()));
          }


    Возникает ошибка: json can not be null or empty
    Сообщение отредактировано: Дмитрий591 -
      Сдаётся мне, вместо
      ExpandedWrap disabled
        when(personService.save(person)).thenReturn(person);

      надо
      ExpandedWrap disabled
        when(personService.save(ArgumentMatchers.any(Person.class))).thenReturn(person);
        Есть stacktrace этой ошибки? Есть полный код проекта?
        0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
        0 пользователей:


        Рейтинг@Mail.ru
        [ Script execution time: 0,0223 ]   [ 15 queries used ]   [ Generated: 9.12.24, 20:03 GMT ]