우당탕탕 좌충우돌 개발일기

AfterEach 어노테이션 사용법 본문

Programming/JAVA

AfterEach 어노테이션 사용법

성동구불주먹 2024. 1. 4. 16:38

 

TestCase는 작성한 각각의 테스트들을 class 단위로 한 번에 테스트 할 수 있다는 장점이 있다.

그러나, 테스트의 순서는 보장되지 않아 한 번에 돌리는 경우 무작위로 테스트 된다는 단점도 공존한다.🤨

(따라서 순서에 의존적으로 설계하면 안됨!)

 

그래서 테스트가 하나 끝나면 clear해줘야 하는데, 그럴 때 사용하는 것이 바로 AfterEach 어노테이션이다.

 

@AfterEach (AfterEach 어노테이션)

: 해당 어노테이션을 사용하면 각각의 테스트 메소드가 실행된 후에 정리 작업이나 공통적인 후처리 작업을 수행할 수 있다.

 

 

import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.Test;

import static org.junit.jupiter.api.Assertions.*;

public class MyServiceTest {
	private MyService myService;
	
	@AfterEach
	public void tearDown() {
	    // 각 테스트 메소드 실행 후에 호출되는 메소드
	    System.out.println("After each test: Cleaning up resources or performing common tasks");
	    myService.cleanup(); // 예를 들어, 서비스의 리소스 정리 작업 수행
	}
	
	@Test
	public void testAddition() {
	    myService = new MyService();
	    int result = myService.add(2, 3);
	    assertEquals(5, result, "Addition result should be 5");
	}
	
	@Test
	public void testMultiplication() {
	    myService = new MyService();
	    int result = myService.multiply(2, 3);
	    assertEquals(6, result, "Multiplication result should be 6");
	}

}

 

 

해당 예제에서 ‘@AfterEach’ 어노테이션이 부착된 ‘tearDown’ 메소드는

각각의 테스트 메소드(’testAddition()’ , ‘testMultiplication()’) 실행 이후에 호출된다.

이 메서드는 각 테스트 메서드의 실행 이후에 공통적인 정리작업을 수행할 수 있게하고, 코드의 중복을 줄일 수 있게 한다.

반응형

'Programming > JAVA' 카테고리의 다른 글

스프링 빈과 의존관계(Dependency Injection)  (0) 2024.01.12
테스트 케이스 - assertThrows  (0) 2024.01.09
테스트 케이스 - Assertions  (1) 2024.01.04
Getter & Setter  (0) 2023.12.19
ResponseBody 어노테이션 사용법  (0) 2023.12.19