가수면

Junit5 본문

Java

Junit5

니비앙 2024. 2. 17. 03:09

Junit5

Java 환경 테스트 프레임워크

https://junit.org/junit5/docs/current/user-guide/#writing-tests

 

JUnit 5 User Guide

Although the JUnit Jupiter programming model and extension model do not support JUnit 4 features such as Rules and Runners natively, it is not expected that source code maintainers will need to update all of their existing tests, test extensions, and custo

junit.org

https://www.petrikainulainen.net/programming/testing/junit-5-tutorial-writing-parameterized-tests/

 

Writing Parameterized Tests With JUnit 5 - Petri Kainulainen

This blog post describes how we can write parameterized tests with JUnit 5 and configure the arguments which are passed to our test methods.

www.petrikainulainen.net


@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