'소스 코드'나 '설계과정에서의 오류' 때문에 발생하는 소프트웨어가 예상하지 못한 결과를 내는 것
Spring에서는 '테스트 코드' 작성을 잘 할 수 있는 환경을 제공해준다.
소프트웨어 내부 구조나 동작원리를 모르는 블랙박스와 같은 상태에서, 즉 웹 서비스의 사용자 입장에서 동작을 검사하는 방법
개발자가 직접 "본인이 작성한 코드"를 검증하기 위해 "테스트 코드"를 작성하는 방법
자바 프로그래밍 언어 용 단위 테스트 프레임워크
Ctrl
+ shift
+ t
⌘
+ shift
+ t
JUnit은 테스트 실행 환경을 가지고 있기 때문에 따로 main() 메서드를 실행하거나 서버를 실행시키지 않아도 각각의 메서드 혹은 기능별로 테스트 코드를 작성하여 실행시킬 수 있다
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);
}
}
// test 코드 작성하는 방법
-> test파일에 테스트 코드 작성
-> 방법 1. window : ctrl + shift + t, mac : command + shift + d
-> 방법 2. 테스트 코드를 작성할 클래스의 이름에서 우클릭 -> Generate -> test -> OK
-> Java의 경우 main함수의 run을 통해서 프로젝트가 실행되는데, Test코드는 main이 없다.
-> JUnit은 테스트 실행 환경을 따로 가지고 있기 때문에 main메서드를 실행시키거나 서버를 따로 실행시키지 않아도 각각의 메서드 혹은 기능별로 코드를 작성해서 실행시켜 테스트 가능
// test코드를 작성하는 방법은 나중에 더 배울 예정
메서드 명은 실행하는데 아무 상관 없음
@Test
애너테이션을 통해서 Test실행환경에서 실행시킬 코드라는 것을 명시
왼쪽 위의 체크 모양으로 어떤 Test인지 확인 가능
Assertions
를 통해서 Test코드의 동작을 검사 // 5주차에서 배울 내용
테스트하는 상황(ex. if문 하나, else if문 하나)하나를 edge라고 표현하고, 이런 edge들을 전부다 테스트하는 것이 제대로 테스트 했다고 볼 수 있고 이 기능을 전부 테스트했다 볼 수 있고, 단위테스트를 했다 할 수 있다.