개인 공부/TIL
TIL : @Modifying, Junit5 (13)
희조당
2022. 9. 27. 02:30
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")
);
}