테스트코드

Jay·2023년 8월 27일

Spring

목록 보기
6/17
버그 : 소프트웨어가 예상하지 못한 결과를 내는것
블랙박스 테스팅 : 웹서비스의 사용자 입장ㅇ에서 동작을 검사하는 방법
- 누구나 테스트가 가능하다(개발자부터 디자이너나 다른 부서사람들까지 전부다)
- 기능이 증가될수록 테스트 범위랑 테스트하는 사람이 계속 늘어난다
- 테스트 하는 사람에 따라 테스트 퀄리티가 다를 수 있다 -> QA직군이 있는 이유
개발자 테스트 : 개발자 본인이 작성한 코드를 검증하기위해 테스트 코드 작성
- 빠르고 정확한 테스트가 가능(예상동작vs실제동작)
- 테스트 자동화가 가능(배포 절차 시 테스트 코드가 수행되어 동작 검증
- 리팩토링이나 기능 추가를 할때 편리
- 개발 시간이 오래 걸림
- 테스트 코드를 유지보수하는 비용

스크린샷 2023-08-25 16.17.23.png

1. 테스트 코드할 파일 내에서 마우스 우클릭 -> Generate... -> Test... -> Ok
2. 테스트 파일 아래에 같은 경로로 들어가 있음
- JUnit은 테스트 실행 환경을 가지고 있기 때문에 따로 main()메서드를 실행하거나 서버를 실행시키지 않아도
	각각의 메소드 혹은 기능별로 테스트 코드를 작성하여 실행시킬수 있다
package com.sparta.springpre.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("잘못된 연산자입니다.");
        }
    }
}

스크린샷 2023-08-25 16.20.02.png

package com.sparta.springpre.calculator;

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

class CalculatorTest {
    // 테스트실행환경을 따로 가지고 있기때문에
    // main이 없어도 가능하다
    @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);
    }
}

0개의 댓글