Junit5
@Disabled
@Disabled
애노테이션은 해당 테스트를 비활성화
- 테스트를 비활성화한다는 것은 해당 테스트를 실행하지 않겠다는 것
@Disabled @Test @DisplayName("항상 실패하는 테스트") void 항상_실패하는_테스트() { throw new RuntimeException("항상 실패한다."); }
assertAll의 장점
// assertAll 미사용
assertEquals(1 + 2, 3);
assertEquals(2 + 3, 5);
assertEquals(7 * 3, 21);
assertEquals(7 * 3 ^ 5, 32);
assertEquals(7 * 3 / 5 + 33 / 21, 4);
assertEquals(33 * 3 / 5 + 7 / 2, 22);
assertEquals(33 * 3 / 5 + 7 / 2 + 1, 22);
// assertAll 사용
assertAll(
() -> assertEquals(1 + 2, 3),
() -> assertEquals(2 + 3, 5),
() -> assertEquals(7 * 3, 21),
() -> assertEquals(7 * 3 ^ 5, 32),
() -> assertEquals(7 * 3 / 5 + 33 / 21, 4),
() -> assertEquals(33 * 3 / 5 + 7 / 2, 22)
() -> assertEquals(33 * 3 / 5 + 7 / 2 + 1, 22)
);
-> assertAll을 사용한다면 검증문이 중간에 실패해도 멈추지 않고 검증문 모두 실행된다!
AssertJ
assertThatCode()
특정 코드가 예외를 발생하지 않는지 비교할 때 사용하는 메서드
- doesNotThrowAnyException도 동일하며, JUnit5의
assertDoesNotThrow
메서드와 비슷한 기능 @Test @DisplayName("assertThatCode 메서드로 특정 코드가 예외를 발생하지 않는지 비교한다") void assertThatCode_메서드로_특정_코드가_예외를_발생하지_않는지_비교한다() { assertDoesNotThrow(() -> { final var number = Integer.valueOf(0x80000000); }); assertThatCode(() -> Integer.valueOf(0x80000000)); }
extracting()
Collection에 포함된 객체들 중 특정 필드를 추출할 때 사용
- 추출한 필드를 기반으로 메서드를 사용 가능
- extracting 메서드가 Reflection을 사용하기 때문에
extracting
을 사용할 경우 getter가 없어도 필드값을 추출 가능!!!!
@Test
@DisplayName("extracting 메서드로 Collection에 포함된 객체들 중 특정 필드를 추출한다")
void extracting_메서드로_Collection에_포함된_객체들_중_특정_필드를_추출한다() {
// username을 가지는 User라는 클래스 존재
final var actual = List.of(
new User("user1", "password1"),
new User("user2", "password2"),
new User("user3", "password3")
);
final var expected = List.of("user1", "user2", "user3");
for (int i = 0, end = actual.size(); i < end; i++) {
// extracting 사용!!!!
assertThat(actual.get(i)).extracting("username").isEqualTo(expected.get(i));
assertEquals(actual.get(i).getUsername(), expected.get(i));
}
}
'우아한테크코스 6기 > 1단계' 카테고리의 다른 글
[자동차 경주 미션] 학습 내용 정리 (1) | 2024.03.25 |
---|---|
일급 컬렉션 (1) | 2024.03.25 |
[자동차 경주 미션] 개인 회고 (0) | 2024.03.25 |
List의 copyof()와 of() (0) | 2024.03.14 |
static final 변수는 항상 상수일까? (0) | 2024.03.11 |