먼저, 버그(bug)란?
- 소프트웨어가 예상하지 못했던 결과를 내는 것
- 소스코드나 설계과정에서의 오류로 인해 발생
테스트코드
개발 코드 배포 전, 버그를 최대한 많이 찾아내는 방법 = 테스트코드!
1. 블랙박스 테스팅
- 소프트웨어의 내부구조나 동작원리를 모르는 상태에서 검사하는 방법
- 웹 서비스의 사용자의 입장에서 검사!
- 누구나 테스트가 가능 / 기능이 많아질수록 범위가 증가하고, 테스터에 따라 퀄리티의 차이가 발생
2. 개발자 테스트
- 개발자가 직접 본인이 작성한 코드를 작성
- 빠르고 정확한 테스트 가능, 테스트 자동화 가능 / 개발시간 多, 테스트 코드 유지보수 비용 多
JUnit : 다바 프로그래밍 언어용 단위 테스트 프레임워크
테스트 파일을 생성해보자!
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("잘못된 연산자입니다.");
}
}
}
또는 단축키 Ctrl + shift + T / Command + shift + T
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로 자세히 나온다
'Spring > Springboot-Intellij' 카테고리의 다른 글
[SpringBoot] SPRING MVC, Servlet, DispatcherServlet (0) | 2025.01.28 |
---|---|
[SpringBoot] Lombok(@) / application.properties(설정변경) (0) | 2025.01.28 |
[HTTP] HTTP(HyperText Transfer Protocol) (0) | 2025.01.28 |
[IntelliJ] 인텔리제이(IntelliJ)에서 "Hello World" 출력하는 API만들기 (0) | 2025.01.28 |
[Server] 서버 (Server) (0) | 2025.01.26 |