[우아한테크코스] 7월 12일 TIL

less than 1 minute read

[Spring] mockito 사용시

  • SpringBootTest에서 MockBean 생성해서 사용하는 방법
    @SpringBootTest
    @ActiveProfiles("test")
    public class ServiceTest {
      @MockBean
      protected MemberRepository memberRepository;
    
      @MockBean
      protected ReservationRepository reservationRepository;
    
      @MockBean
      protected MapRepository mapRepository;
    
      @MockBean
      protected SpaceRepository spaceRepository;
    }
    
  • Service 내에서 given when then 으로 사용하는 방법
    given(mapRepository.existsById(anyLong()))
          .willReturn(true);
    given(spaceRepository.findById(anyLong()))
          .willReturn(Optional.of(SPACE));
    when(reservationRepository.save(any(Reservation.class)))
          .thenReturn(savedReservation);
    

    jpaRepository에서는 save가 given - willReturn으로 구현되지 않는다.
    그게 아니라 넣는 값을 any로 넣어야 한다.

    given(reservationRepository.save(any(Reservation.class)))
      .willReturn(savedReservation);
    

BDD mockito vs mockito
BDD의 given() <-> Mockito의 when() BDD의 then().should() <-> Mockito의 verify()
“시나리오에 맞게 테스트 코드가 읽힐 수 있도록”

[Java] DateTime 초 날리기

나는 분까지만 필요한데 LocalDateTime.now()에서 나노초까지 나온다면 .truncatedTo(ChronoUnit.SECONDS) 사용