Spring 심화주차/1주차

4. 단위 테스트란 무엇일까?

note994 2024. 9. 11. 15:07

단위 테스트란?

버그 발견 시간이 늦어짐에 따라 비용이 기하급수적으로 커지는 것을 알 수 있다.

 

1. Development : 개발

2. Unit Tests (단위 테스트) : 개발자 테스트

3. QA Testing : 블랙박스 테스팅, 주로 QA팀이 Production 환경과 유사한 환경(Stage)에서 테스팅

4. Production : 실 서비스 운영 환경

따라서 테스트 코드를 작성한다면 프로그램의 버그를 사전에 발견하여 기하급수적인 비용의 증가가능성을 사전에 방지할 수 있다.

개발자는 단위 테스트를 작성하여 프로그램을 테스트 할 수 있다.

단위 테스트는 작은 단위로 쪼개서 각 단위가 정확하게 동작하는지를 검사하는 테스트 기법이다.

단위 테스트는 빠르게 작성할 수 있고 문제 발생 시 어느 부분이 잘 못 되었는지를 빠르고 정확하게 확인할 수 있다는 장점이 있다.


JUnit5 다루기

1. IntelliJ를 실행한다.

2. New Project를 클릭

3. 왼쪽 메뉴에서 "Spring Initialize"를 클릭하고 아래와 같이 설정



4. [중요] 꼭 다음 사항을 확인한다.

Name : junit5-practice

Language : Java

Build system : Gradle - Groovy

Group : com.sparta

JDK : 17

프로젝트 경로(Location)은 자유롭게 설정

5. Next를 클릭

6. 아무것도 선택하지 않고 Create를 클릭

이렇게 BeforeAfterTest.java 파일 생성

BeforeAfterTest.java
0.00MB
BeforeAfterTest.java


CustomTest.java 생성

 

CustomTest.java
0.00MB

 

 

@Order를 실습하기 위해 CostomTest 코드를 수정

CostomTest2.java
0.00MB

 

@Nested : 주제 별로 테스트를 그룹지어서 하기 위해 사용

@Order : 그룹 내의 테스트 메서드 실행 순서 정하기 위해 사용 


RepeatTest.java
0.00MB
RepeatTest.java

repeatTest는 5번 반복하도록 되어있다.(value = 5)

name = "반복 테스트 {currentRepetition} / {totalRepetitions}" : 테스트의 이름에 "반복 테스트 {현재 반복} / {총 반복 숫자}" 가 표시된다.


getCurrentRepetition() : 현재 반복 횟수

getTotalRepetitions() : 총 반복 횟수




@ValueSource(ints = {1, 2, 3, 4, 5, 6, 7, 8, 9})

현재 테스트 메서드의 매개변수인 num에 이 숫자 목록들을 집어넣으며 반복한다.



Calculator.java, AssertionTest.java 파일을 만든다.

Calculator.java
0.00MB
AssertionTest.java
0.00MB

 

@BeforeEach : 각각의 테스트 함수가 실행되기 전에 객체를 사용할 수 있도록 객체를 만들어주는것이다.

assertEquals() : 첫번째 인수는 예상값, 두 번째 인수는 결과값을 넣는다. 예상값과 일치하면 테스트 성공

assertNotEquals() : 예상값과 일치하지 않으면 테스트 성공이다. 예상값과 일치하면 테스트 실패가 뜬다.

assertTrue() : True를 예측한다. False라면 테스트 실패

assertFalse() : False를 예측한다. True라면 테스트 실패

assertNotNull() : 실제값이 Null이 아님을 예측한다.

assertNull() : 실제값이 Null임을 예측한다.

assertEquals() : 첫번째 인수는 예상하는 오류 메시지, 두 번째 인수는 실제 오류 메시지

또한 오류의 타입도 예측한다. assertThrows로 던진 IllegalArgumentException 오류를 예측하므로 다른 종류의 오류라면 테스트가 실패한다.


CalculatorTest.java
0.00MB

 

Given - When- Then 테스트 패턴 파악할 수 있는 코드이다.