Spring/Springboot-Intellij

[Spring Boot] 테스트 코드, JUnit 제이유닛

congs 2025. 1. 28. 12:44

먼저, 버그(bug)란?

  • 소프트웨어가 예상하지 못했던 결과를 내는 것
  • 소스코드나 설계과정에서의 오류로 인해 발생

 

테스트코드 

개발 코드 배포 전, 버그를 최대한 많이 찾아내는 방법 = 테스트코드!

1. 블랙박스 테스팅

  • 소프트웨어의 내부구조나 동작원리를 모르는 상태에서 검사하는 방법
  • 웹 서비스의 사용자의 입장에서 검사!
  • 누구나 테스트가 가능 / 기능이 많아질수록 범위가 증가하고, 테스터에 따라 퀄리티의 차이가 발생

2. 개발자 테스트

  • 개발자가 직접 본인이 작성한 코드를 작성
  • 빠르고 정확한 테스트 가능, 테스트 자동화 가능 / 개발시간 多, 테스트 코드 유지보수 비용 多

 

JUnit  : 다바 프로그래밍 언어용 단위 테스트 프레임워크

build.gradle을 보면 JUnit 사용을 위한 환경설정이 되어 있는 것을 확인할 수 있다

 

테스트 파일을 생성해보자!

계산기 class 생성

 

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("잘못된 연산자입니다.");
        }
    }
}

계산기 class에서 우클릭 - Generate..
Test..클릭
ok

또는 단축키 Ctrl + shift + T / Command + shift + T

create new Test 클릭


test패키지안에 - main에서 만든 calculator패키지처럼 동일경로로 파일을 만들어 - 테스트를 만든것을 확인!


테스트 코드를 작성하고

package com.sparta.springprepare.calculator;

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

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);
    }
}
  • 테스트 코드는 main()메서드 / 서버 실행할 필요가 없음!
  • JUnit은 테스트 실행 환경을 가지고 있기 때문에 각각의 메서드, 기능별로 코드 실행이 가능함!!

 

  • @Test : 테스트 파일임을 지정하는 어노테이션 / 옆에 실행버튼이 생김
  • main에 있는 Calculator의 메서드 operate를 new연산자를 사용하여 부르고 사용!
  • Assertions. assertEquals : 예상한 값과 결과가 동일한지 비교 / 다른 경우 빨간색 결과가 나타남

 

 

 

 

 

 


  • 테스트 코드 실행시 하단에 결과가 나오며, ✔ 표시를 누르면 Show passed로 자세히 나온다