스파르타 코딩 클럽 | 자바 심화 과정/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부터는 안 붙여도 됨
→ 반환 타입과 메소드 명만 넣으면 됨
테스트 코드 실행 방법
옆에 실행 버튼을 통하여 개별 테스트를 실행시킬 수 있음
콘솔 결과)
실행 결과 및 시간 측정)