본문 바로가기

Java&JSP&Spring/Java

[Java/JUnit5]#1 이클립스에서 JUnit 5 시작하기

[Java/JUnit5]#1 이클립스에서 JUnit 5 시작하기

안녕하세요 미나라이입니다.

 

다음 프로젝트에서 JUnit을 사용할 수도 있다고 해서 레퍼런스를 보고 공부를 해 보았습니다.

저번 포스팅에서는 JUNIT4에 대한 기본적인 사용법에 대해서 다루어 보았는데요.

이번에는 JUNIT5의 기본적인 사용법에 대해서 보도록 하겠습니다.

JUNIT5는 JUNIT JUPITER버전이라고도 하더군요.

 

JUNIT4 기본 사용법

 

[Java/JUnit4]#1 이클립스에서 JUnit 4 시작하기

안녕하세요 미나라이입니다. 다음 프로젝트에서 JUnit을 사용할 수도 있다고 해서 레퍼런스를 보고 공부를 해 보았습니다. 이번 포스팅에서는 기본적인 사용법에 대해 포스팅해보려고 합니다.

nameybs.tistory.com

프로젝트 환경

OS : Windows 10

IDE : Eclipse 2021-12 (4.22.0)

JDK : 16.0.2

JRE : JavaSE-14

JUnit : 5.8.1

 

JUnit은 자바에서 주로 쓰는 단위테스트 도구로써 특정 코드만 테스트할 수 있게 해 줍니다.

소스가 복잡하게 얽혀있으면 테스트 할 부분까지 도달하는데 힘들 수 있습니다.

그런 부분을 개선 해 주고 테스트의 이력 또한 남길 수 있습니다.

이클립스에서 JUnit5 사용하기

1. 프로젝트 생성

JUnit은 테스트를 위한 도구라고 했으니 먼저 테스트할 프로젝트를 만들어봅시다.

프로젝트가 만들어 진 것을 확인해 봅시다.

2. 소스 코드 작성

테스트 대상 소스를 작성 해 봅시다.

간단한 덧셈 기능을 구현 해 보았습니다.

※ 단위 테스트 도구라서 예제에서 메인 메서드는 딱히 필요 없습니다.

package com.calc;

public class Calculator {
	public int Sum(int a, int b) {
		return a + b;
	}
}

3. 테스트 소스 작성

이제 해당 덧셈 기능이 잘 작동 되는지 테스트를 해 봅시다.

테스트 클레스를 작성해 봅시다.

정리를 위해 테스트 전용 패키지를 작성했습니다.

com.test 패키지를 우클릭해서 새로 만들기를 클릭합시다.

여기서 JUnit Test Case를 선택합니다.

 

선택하면 이렇게 JUnit Test Case작성 설정 창이 나오는데

New JUnit Jupiter test로 선택해 줍니다.

제목을 적고  Finish를 눌러서 빠져나가 줍니다.

그럼 아래와 같은 창이 뜨는데 OK를 눌러줍니다.

그럼 이렇게 JUnit 테스트 페이지가 뜨는데...?

또 에러가 나네요 

에러의 원인은 module을 사용하고 있기 때문에 에러가 나는 것이었습니다.

※ Java 9 이전 버전에서는 module을 사용하지 않기 때문에 위의 경우에서 에러가 나지 않습니다.

 

에러를 해소할 수 있는 방법

1. module-info.java 파일을 삭제하거나 주석처리해 줍니다.

2. JUnit5 라이브러리를 Classpath에서 Modulepath로 변경해줍니다.

프로젝트 우클릭 - Build Path - Configure Build Path를 선택합니다.

그러면 이렇게 JUnit5가 Classpath에 들어가 있는 게 보입니다.

JUnit 5를 드래서 해서 Modulepath로 옮겨줍시다.

Apply and Close를 눌러서 창을 닫아줍시다.

module-info.java 파일에 다음과 같이 추가해 줍니다.

module JUnit_Test5 {
	requires org.junit.jupiter.api;
}

프로젝트에 에러가 사라진 것을 확인할 수 있습니다.

CalcTest.java

테스트 케이스를 추가할 파일을 확인해 봅시다.

@Test 어노테이션이 붙어있는 메서드 안에 테스트 동작과 결과를 추가 함으로써 테스트를 할 수 있습니다.

테스트 예제로는 덧셈 연산의 결과가 제대로 찍히는지에 대해서 해보겠습니다.

JUnit에서 데이터 비교 테스트로 쓰이는 게 assertEquals(예상 결과 , 테스트 데이터)입니다.

package com.test;
import static org.junit.jupiter.api.Assertions.*;

import org.junit.jupiter.api.Test;

import com.calc.Calculator;

class CalcTest {

	@Test
	void test() {
		// 테스트 대상 객체 생성
		Calculator calc = new Calculator();
		// 덧셈 연산의 결과가 맞는지 테스트
		assertEquals(3, calc.Sum(1, 2));
	}
}

관련 링크

 

Assertions (JUnit 5.0.1 API)

Asserts that all supplied executables do not throw exceptions. If any supplied Executable throws an exception (i.e., a Throwable or any subclass thereof), all remaining executables will still be executed, and all exceptions will be aggregated and reported

junit.org

4. 테스트 실행

테스트 항목을 실행시켜 봅시다.

CalcTest.java파일 우클릭 - Run AS - JUnit test를 선택하면 결과를 표시합니다.

 

결과 화면

테스트 결과가 정상이면 초록색 상태바가 표시가 됩니다.

테스트 결과가 실패했을 경우

테스트 결과 데이터가 예상 값과 다르거나 에러가 날 경우에는 빨간색 상태 바로 표시가 됩니다.

샘플 프로젝트 첨부

JUnit_Test5.zip
0.00MB

이상으로 간단하게 JUnit 5의 기본 동작에 대해서 포스팅해 보았습니다.

다음 포스팅에서 더욱 자세한 활용법에 대해서 소개해 보려고 합니다.

728x90
반응형