JUnit과 Mockito 기반 Spring 단위 테스트 코드 : https://mangkyu.tistory.com/145
Mock 개념 : https://www.crocus.co.kr/1555
Java 기반 Mock 사용하기(Mockito) : https://www.crocus.co.kr/1556
JUnit에서 Private 변수 접근하여 테스트 : https://www.crocus.co.kr/1665
JUnit에서 System.out.println 출력 내용 테스트 : https://eblo.tistory.com/123 
Intellij IDEA에서 Junit 사용하기 : https://ildann.tistory.com/5

 

 

 

 

 

Posted by 꿈만은공돌
,

 

 단위테스트(Unit Test)를 작성하는데 AAA 패턴을 이용해서 작성하면 단순하고 균일한 구조를 갖는데 도움을 주며 가독성 또한 좋아진다. 

 

 AAA패턴이란 준비(arrange), 실행(act), 검증(assert) 세 단계로 Test를 작성하는 패턴을 의미한다.

 

- 준비(arrange) : 테스트에 필요한 변수나 객체를 생성한다. 필요에 따라 mock 객체를 만든다.

 

- 실행(act) : 테스트 할 코드를 실행해 본다.

 

- 검증(assert) : 실행한 코드가 설계한대로 정확하게 동작했는지를 검증해본다. Unit Test의 Api인 assertEqals() 등의 코드를 사용하여 검증한다.

 

비슷한 패턴으로 Given-When-Then 패턴이 존재 한다.

 

아래 코드는 AAA패턴을 이용해서 Test 코드를 작성한 것이다.

 

import static org.junit.Assert.*;
import org.junit.Test;

public class MyMathTest {
	@Test
	public void mul_of_two_numbers() {
		// arrange
		MyMath math = new MyMath();
		int first = 5;
		int second = 30;	
		
		// act
		int result = math.mul(first, second);
		
		// assert
		assertEquals(150, result);
	}
}

 

각 단계마다 코드의 길이에 대한 설명이다.

 

 

-  준비(arrange) : 필요한 객체를 생성하고 필요한 변수들을 셋팅하는 과정이기 실행이나 검증 단계보다 코드가 길어질 수 있다. 준비 단계 코드가 너무 길어지고 다른 테스트와의 유사성이 있다면 중복된 부분을 private 함수를 이용해서 리팩토링하는 것도 좋은 방법이다.

 

- 실행(act) : 보통 한줄의 코드이다. 실행 구절이 두줄 이상이라면 잘못 설계된 API일 가능성이 높다.

 

- 검증(assert) : 유닛 테스트란 단일 동작을 검증하는 단위테스트다. 하지만 단일 동작으로 여러 결과를 낼 수 있기 때문에 코드가 길어 질 수 있다.

 

 

 

 

Posted by 꿈만은공돌
,

JAVA 코드를 유닛 테스트 하기위하여 Junit을 이용하여 Eclipse 환경에서의 방법을 알아보자.

이클립스(Eclipse) 버전은 2022-03(4.23.0) 버전을 사용하였다.

JDK는 18.0.1.1 버전을 사용하였다.

최근 몇년간의 버전이라면 아래 방법과 큰차이가 없을 것이다.

외부라이브러리를 번거롭게 수동으로 추가해주지 않아도 된다.

 

이클립스 버전 정보

 

File -> New -> Java Project 를 실행하여 아래와 같은 팝업창에서 프로젝트 명을 입력하고 Finish 버튼을 누른다.

 

신규 자바 프로젝트 생성

 

그 이후에 새로 만들어진 프로젝트에 새로운 Class를 생성한다.

프로젝트에 Src를 클릭하고 오른쪽 버튼을 눌러서 Class를 선택한다. 그러면 아래와 같은 팝업창이 뜨는데 class이름을 입력하고 Finish를 누른다. 

 

Class 생성

 

그리고 아래와 같이 클래스를 작성한다.

 

소스코드 작성

 

그 이후에 프로젝트의 Src에 오른쪽 버튼을 누른 후 New-> Junit Test Case를 선택한다.

 

JUnit Test Case 생성

 

그러면 아래와 같은 팝업창이 뜨는데 New JUnit 4 test를 선택하고 Name을 입력하고 Finish를 누른다.

 

 

 

 

그러면 JUnit 라이브러리가 없으니 추가하라고 나오는데 아래와 같이 선택하고 OK 버튼을 누른다. 

 

JUnit4 라이브러리 추가

 

그러면 아래와 같이 테스트 클래스가 생성된다.

 

 

이 테스트 클래스를 실행하기 위해서는 테스트클래스에 오른쪽 버튼을 눌러 Run As -> JUnit Test 를 클릭한다.

 

 

그러면 아래와 같이 실패했다는 정보를 확인할 수 있다.

 

Junit Test 실패

 

아래와 같이 테스트 클래스의 코드를 변경한다.

 

import static org.junit.Assert.*;
import org.junit.Test;

public class MyMathTest {
	@Test
	public void test() {
		MyMath math = new MyMath();
		assertEquals(10, math.add(3, 7));
	}
}

 

 

그이후에 다시 실행하게 되면 아래이미지와 같이 성공으로 뜬것을 확인할 수 있다.

 

Junit Test 성공

 

Posted by 꿈만은공돌
,