JUnit이란 자바에서 사용되는 단위 모듈 테스트를 위한 프레임 워크이다. 소스코드의 모듈이 정확히 작동하는지 검증하기 위해 필요하다.
github.com/junit-team/junit5/ (소스코드)
<!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-api -->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.7.0</version>
<scope>test</scope>
</dependency>
class MyFirstJUnitJupiterTests {
private final Calculator calculator = new Calculator();
@Test
void addition() {
assertEquals(2, calculator.add(1, 1));
}
}
메서드 위에 @Test 와 같이 annotation (어노테이션)기호를 붙여 사용한다.
주석 | |
@Test |
메서드가 테스트 메서드임을 나타냅니다.
|
@ParameterizedTest |
메서드가 매개 변수 가있는 테스트 임을 나타냅니다 . 이러한 메서드는 재정의 되지 않는 한 상속 됩니다 .
|
@RepeatedTest |
메서드가 반복 테스트를 위한 테스트 템플릿임을 나타냅니다 . 이러한 메서드는 재정의 되지 않는 한 상속 됩니다 .
|
@TestFactory |
메서드가 동적 테스트를 위한 테스트 팩토리임을 나타냅니다 . 이러한 메서드는 재정의 되지 않는 한 상속 됩니다 .
|
@TestTemplate |
메서드가 등록 된 공급자가 반환 한 호출 컨텍스트 수에 따라 여러 번 호출되도록 설계된 테스트 케이스 의 템플릿 임을 나타냅니다 . 이러한 메서드는 재정의 되지 않는 한 상속 됩니다 .
|
@TestMethodOrder |
주석이 달린 테스트 클래스에 대한 테스트 메서드 실행 순서 를 구성하는 데 사용됩니다 .
|
@TestInstance |
주석이 달린 테스트 클래스에 대한 테스트 인스턴스 수명주기 를 구성하는 데 사용됩니다 . 이러한 주석은 상속 됩니다.
|
@DisplayName |
테스트 클래스 또는 테스트 메서드에 대한 사용자 지정 표시 이름 을 선언합니다 . 이러한 주석은 상속 되지 않습니다 .
|
@DisplayNameGeneration |
테스트 클래스에 대한 사용자 지정 표시 이름 생성기 를 선언합니다 .
|
@BeforeEach |
주석 메소드가 실행되어야 함 전에 실행
|
@AfterEach |
주석 메소드가 실행되어야 함 후에 실행
|
@BeforeAll |
주석 메소드가 실행되어야 함을 나타내고 전에 실행
|
@AfterAll |
주석 메소드가 실행되어야 함을 나타내고, 이후 실행
|
@Nested |
주석이 달린 클래스가 정적이 아닌 중첩 테스트 클래스 임을 나타냅니다 . @BeforeAll및 @AfterAll방법은 직접 사용할 수 없습니다 @Nested은 "당 클래스"를 제외 테스트 클래스 테스트 인스턴스 라이프 사이클이 사용됩니다. 이러한 주석은 상속 되지 않습니다 .
|
@Tag |
클래스 또는 메서드 수준에서 테스트 필터링을위한 태그 를 선언하는 데 사용됩니다 . TestNG의 테스트 그룹 또는 JUnit 4의 Categories와 유사합니다. 이러한 주석은 클래스 수준에서 상속 되지만 메서드 수준 에서는 상속 되지 않습니다.
|
@Disabled |
테스트 클래스 또는 테스트 메서드 를 비활성화 하는 데 사용됩니다 .
|
@Timeout |
실행이 주어진 기간을 초과하는 경우 테스트, 테스트 팩토리, 테스트 템플릿 또는 수명주기 메서드를 실패하는 데 사용됩니다. 이러한 주석은 상속 됩니다.
|
@ExtendWith |
확장을 선언적 으로 등록하는 데 사용됩니다 . 이러한 주석은 상속 됩니다.
|
@RegisterExtension |
필드를 통해 프로그래밍 방식으로 확장 을 등록하는 데 사용됩니다 . 이러한 필드는 음영 처리 되지 않는 한 상속 됩니다 .
|
@TempDir |
라이프 사이클 방법 또는 테스트 방법에서 필드 주입 또는 매개 변수 주입을 통해 임시 디렉토리 를 제공하는 데 사용됩니다 . 에있는 org.junit.jupiter.api.io패키지.
|
* 주로 BeforeAll, BeforeEach, Test, AfterEach, AfterAll를 쓴다.
JUnit Jupiter에 Assertion메소드이며 메소드 내부의 값을 확인할때 사용할 수 있다.
junit.org/junit5/docs/current/api/org.junit.jupiter.api/org/junit/jupiter/api/Assertions.html
@Test
void standardAssertions() {
assertEquals(2, calculator.add(1, 1));
assertEquals(4, calculator.multiply(2, 2),
"The optional failure message is now the last parameter");
assertTrue('a' < 'b', () -> "Assertion messages can be lazily evaluated -- "
+ "to avoid constructing complex messages unnecessarily.");
}
assertEquals : 첫번쨰 매개변수와 두번쨰 매개변수가 같은지 비교하는 것이다.
@Test
void dependentAssertions() {
// Within a code block, if an assertion fails the
// subsequent code in the same block will be skipped.
assertAll("properties",
() -> {
String firstName = person.getFirstName();
assertNotNull(firstName);
// Executed only if the previous assertion is valid.
assertAll("first name",
() -> assertTrue(firstName.startsWith("J")),
() -> assertTrue(firstName.endsWith("e"))
);
},
() -> {
// Grouped assertion, so processed independently
// of results of first name assertions.
String lastName = person.getLastName();
assertNotNull(lastName);
// Executed only if the previous assertion is valid.
assertAll("last name",
() -> assertTrue(lastName.startsWith("D")),
() -> assertTrue(lastName.endsWith("e"))
);
}
);
}
assertAll : assertions 을 그룹화하여 그룹안에서 assertions을 사용 할수 있다.
assertTrue : 특정조건이 참, 거짓인지 알아보는 것 이다.
※ 더 많은 메서드가 있으며 API안에서 찾아서 사용할 수 있다.
STS (Spring Tool Suite) 설치 방법 (0) | 2021.02.09 |
---|---|
How to use Mybatis - (2) [ Mybatis-spring 연동 및 사용방법 ] (0) | 2021.02.01 |
What is Mybatis (마이바티스 이란?) - (1) (0) | 2021.01.30 |
What is Maven? (메이븐이란?) (0) | 2021.01.21 |