Junit 기능 테스트

목표

junit 기본 기능 테스트해보기


주 사용 어노테이션

@Test: 테스트 메서드를 나타냅니다. 이 어노테이션이 붙은 메서드는 테스트 프레임워크에 의해 실행
@BeforeEach: 각 테스트 메서드가 실행되기 전에 실행. 테스트 초기화 작업에 사용
@AfterEach: 각 테스트 메서드가 실행된 후에 실행. 테스트 정리 작업에 사용
@BeforeAll: 모든 테스트 메서드가 실행되기 전에 한 번 실행. 주로 클래스 레벨의 초기화 작업에 사용
@AfterAll: 모든 테스트 메서드가 실행된 후에 한 번 실행. 주로 클래스 레벨의 정리 작업에 사용
@Disabled: 테스트 메서드나 클래스가 실행되지 않음. 주석 처리와 비슷한 역할
@DisplayName: 테스트 메서드의 이름을 지정. 테스트 결과 보고서에 표시


주 사용 펑션들

assertEquals(expected, actual): 두 값이 같은지 확인
assertNotEquals(unexpected, actual): 두 값이 같지 않은지 확인
assertTrue(condition): 조건이 참인지 확인
assertFalse(condition): 조건이 거짓인지 확인
assertNull(object): 객체가 null인지 확인
assertNotNull(object): 객체가 null이 아닌지 확인
assertThrows(expectedType, executable): 예외가 발생하는지 확인


계산 클래스

1
2
3
4
5
6
7
8
9
public class Calculator {
public int add(int a, int b) {
return a + b;
}

public int subtract(int a, int b) {
return a - b;
}
}

계산기 테스트 예시 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.Assertions;

public class BasicTest {

private Calculator calculator;

@BeforeAll
static void setupAll() {
System.out.println("Before all tests");
}

@BeforeEach
void setup() {
System.out.println("Before each test");
calculator = new Calculator();
}

@Test
void testAddition() {
int result = calculator.add(1, 1);
Assertions.assertEquals(2, result, "1 + 1 should equal 2");
}

@Test
void testSubtraction() {
int result = calculator.subtract(2, 1);
Assertions.assertEquals(1, result, "2 - 1 should equal 1");
}

@AfterEach
void tearDown() {
System.out.println("After each test");
}

@AfterAll
static void tearDownAll() {
System.out.println("After all tests");
}
}

결과

IDE에서 test result 가 정상 처리 된 것을 확인
debug 콘솔에는 아래 출력을 확인
Before all tests
Before each test
After each test
Before each test
After each test
After all tests

정리

테스트 코드를 작성해야 나중에 유지보수 하기 좋고 생산성 좋다고 한다
처음엔 테스트 코드 작성하기가 귀찮겠지만 기능을 추가할 때나 새로 코드를 짜야할 때
테스트 코드부터 짜는 습관을 들여 테스트 주도 개발 이점을 느껴보자

Author

HyunSuk

Posted on

2024-10-03

Updated on

2024-10-03

Licensed under

댓글