AssertJ & JUnit5 기초

AssertJ

https://www.javadoc.io/doc/org.assertj/assertj-core/latest/org/assertj/core/api/package-summary.html

import static org.assertj.core.api.Assertions.*;

AssertJ 클래스 이름 없이 바로 사용 가능.

테스트 대상 지정하기

모든 테스트 코드는 assertThat() 메소드에서 출발한다.

*assertThat*(result).contains("2", "1"); asertThat(테스트 타켓).메소드1().메소드2(). … ;

assertThat("Hello, world! Nice to meet you.") // 주어진 문자열은
				.isNotEmpty() // 비어있지 않고
				.contains("Nice") // "Nice"를 포함하고
				.contains("world") // "world"도 포함하고
				.doesNotContain("ZZZ") // "ZZZ"는 포함하지 않으며
				.startsWith("Hell") // "Hell"로 시작하고
				.endsWith("u.") // "u."로 끝나며
				.isEqualTo("Hello, world! Nice to meet you."); // ~이다. 를 테스트한다.

다음과 같이 .~ .~ 형태로 나타낼 수도 있다.

Junit5

JUnit5 완벽 가이드 – 민동현 – Dream Cometrue (donghyeon.dev)

  1. @DisplayName : 테스트 클래스나 테스트 메소드에 이름을 붙여줄 때 사용.
    1. 기본적으로 테스트 이름은 메소드 이름을 따라간다.
    2. 하지만 메소드 이름은 그대로 둔 채 테스트 이름을 바꾸고 싶을 때 해당 어노테이션 사용.
  2. @DisplayNameGeneration : 테스트 이름을 어떻게 보여줄지 결정할 수 있다.
  3. @BeforeEach : 각 테스트 메소드가 실행되기 전에 실행되어야 하는 메소드 명시.
    1. @Test, @RepeatedTest, @ParameterizedTest, @TestFactory 가 붙은 테스트 메소드가 실행되기 전에 실행된다.
  4. @AfterEach : 각 테스트 메소드가 실행되고 난 후 실행되어야 하는 메소드 명시.
    1. BeforeEach와 동일.