본문 바로가기
개인 공부/TIL

TIL : @Modifying, Junit5 (13)

by 희조당 2022. 9. 27.
728x90

🌞 Spring

1️⃣ @Modifying 어노테이션

  • @Query 어노테이션을 통해 작성된 DML문(select 제외)을 사용할 때 붙이는 어노테이션이다.
  • JpaRepository가 제공하는 기본적인 메서드 혹은 메서드 네이밍 쿼리에는 적용되지 않는다!

2️⃣ JPQL 쿼리 (짧)

  • JPQL 쿼리로 검색 조건 처리 시 좀 어려울 수 있지만 count에 대한 처리가 쉽다, fetchCount()...!

✍️ Junit5

1️⃣ 기본 Annotation

  • 🌀BeforeAll / 🌀AfterAll : 모든 테스트보다 이전/이후에 실행, static 메서드만.
  • 🌀BeforeEach / 🌀AfterEach : 각 테스트 전/후에 실행
  • 🌀DisplayName("테스트 임당") : 테스트 이름 정하기 
  • 🌀Disable : 테스트 비활성화

2️⃣ Assertions, Assumptions

  • Assertions : 주장이라는 뜻. 원하는 결과를 테스트할 때 쓴다.
  • 대표적으로 assertTrue(), assertFalse(), assertAll() 을 알아두자 (너무 많음)
// Example
@Test
void assertTest() {
   assertTrue(Stream.of(1,2,3)
      .stream()
      .mapToInt(i -> i)
      .sum() > 5, () -> "5보다 커야합니다!");
}

@Test
void groupAssertTest() {
   int[] num = {0,1,2,3,4};
   assertAll("num",
      () -> assertEquals(num[0], 1),
      () -> assertEquals(num[3], 3),
      () -> assertEquals(num[4], 5)
   );
}
  • Assumptions : 추정이라는 뜻. 조건을 만족하면 테스트를 진행한다.
  • assumeTrue(), assumeFalse(), assumingThat() 이 있다. assumingThat() 은 첫 인자 값이 false이면 스킵하지 않고 다음 코드를 진행한다.
// Example
@Test
void assumtionTest() {
   assumTrue(5 > 1);
   assertEquals(hejow, "잘생김");
}

@Test
void assumtionTest2() {
   String truth = "hejow is handsome";
   assumingThat(
      turth.equals("hejow is too handsome"),
      () -> System.out.println("That makes sense")
   );
}

 

 

댓글