스파르타 코딩 클럽 | 자바 심화 과정/Spring Master (입문 주차)

JUnit5 - #3. 실습) 계산기 예제를 통한 테스트 / 실행 시간 및 결과 확인 법

luminous_dev 2025. 1. 22. 15:48

 

클래스

package com.sparta.springprepare.calculator;

public class Calculator {
    public Double operate(double num1, String op, double num2) {
        switch (op) {
            case "*":
                return num1 * num2;
            case "/":
                if (num2 != 0) {
                    return num1 / num2;
                } else {
                    return null;
                }
            case "+":
                return num1 + num2;
            case "-":
                return num1 - num2;
            default:
                throw new IllegalArgumentException("잘못된 연산자입니다.");
        }
    }
}

 

테스트 코드

package com.sparta.sparta_spring_start.calculator;

import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;

import static org.junit.jupiter.api.Assertions.*;

    class CalculatorTest {
        @Test
        @DisplayName("더하기 테스트")
        void test1() {
            Calculator calculator = new Calculator();
            Double result = calculator.operate(8, "+", 2);
            System.out.println("result = " + result);

            Assertions.assertEquals(10, result);
        }

        @Test
        @DisplayName("나누기 테스트")
        void test2() {
            Calculator calculator = new Calculator();
            Double result = calculator.operate(8, "/", 2);
            System.out.println("result = " + result);

            Assertions.assertEquals(4, result);
        }
    }

 

자바에서 메인에서 시작해서 메인으로 끝난다는 것을 배웠음

그러나! 테스트 코드에서는 메인이 없음

 

원인) JUnit은 테스트 실행환경을 따로 가지고 있음

그래서 메인메서드나 서버를 따로 실행시키지 않아도 각각의 메서드와 테스트 코드를 실행할 수 있음 

 

+) JUnit5의 특징

JUnit 4까지는 public void로 public을 붙여줬어야 했는데 JUnit 5부터는 안 붙여도 됨

→ 반환 타입과 메소드 명만 넣으면 됨 

 

 

테스트 코드 실행 방법 

옆에 실행 버튼을 통하여 개별 테스트를 실행시킬 수 있음

 

콘솔 결과)

 

실행 결과 및 시간 측정)