가수면
Junit5 본문
Junit5
Java 환경 테스트 프레임워크
https://junit.org/junit5/docs/current/user-guide/#writing-tests
https://www.petrikainulainen.net/programming/testing/junit-5-tutorial-writing-parameterized-tests/
@Test
@DisplayName("과목(코스)를 생성한다.")
@Test
void createTest() {
일반적으로 테스트 메소드는 위와 같은 구조를 띄게 된다.
@ParameterizedTest - 테스트 메소드에 파라미터를 넘겨줄 수 있게 해주는 어노테이션
@ValueSource(strings = {a, b...})
{a, b...}형태로 여러 값들을 가지고 테스트할 수 있게 해주는 어노테이션
예시)
@ParameterizedTest
@ValueSource(strings = {"password", "testpassword"})
void validatePasswordTest(String value) {
@MethodSource(메소드명)
매개변수가 여러 개 필요한 테스트를 여러번 실행하고 싶을 경우 사용하는 어노테이션
일반적으로 Stream 타입을 반환하는 메소드를 입력한다.
예시)
@DisplayName("덧셈 연산을 수행한다.")
@ParameterizedTest
@MethodSource("formulaAndResult")
void additionTest(int operand1, String operator, int operand2, int result) {
.
.
.
private static Stream<Arguments> formulaAndResult() {
return Stream.of(
arguments(1, "+", 2, 3),
arguments(1, "-", 2, -1),
arguments(4, "*", 2, 8),
arguments(4, "/", 2, 2)
);
}
@BeforeEach
테스트 실행 전 실행되어야할 셋업 메소드를 설정하는 어노테이션
assertj
테스트 코드의 가독성을 높여주는 라이브러리
assertThat
단언 메서드
MenuItem menuItem = menu.choose("돈까스");
assertThat(menuItem).isEqualTo(new MenuItem("돈까스", 7000));
만약 위 코드 예시처럼 객체끼리 비교하려면 해당 클래스 안에 생성을 통해 ''equals()' 및 'hashCode()' 생성'작업을 해줘야 한다.
assertThatCode
코드 블록의 실행 결과를 테스트. 람다 표현식이나 코드 블록이 전달 됨
기본 단언문
assertEquals
assertEquals(4, calculator.add(2, 2));
assertTrue
assertTrue(result > 0);
'Java' 카테고리의 다른 글
백엔드 성능 측정 (0) | 2024.03.28 |
---|---|
[Spring Boot] 에러 핸들링 (1) | 2024.02.20 |
스프링 부트 서버에 https 설정 (0) | 2024.01.23 |
Spring Security와 JWT (0) | 2024.01.09 |
[Spring Boot] 심화 (0) | 2023.12.28 |
Comments