main() 메서드의 두 번째 문제점은 실행 결과를 눈으로 직접 확인해야 한다는 것이다. JUnit 은 이 같은 문제점을 극복하기 위해 assertEquals() 메서드를 제공한다. 위 CalculatorTest 클래스에 assertEquals() 메서드를 적용한다.
import static org.junit.Assert.assertEquals;
import.org.junit.Test;
public class CalculatorTest {
@Test
public void add() {
Calculator cal = new Calculator();
assertEquals(9, cal.add(6, 3));
}
@Test
public void subtract() {
Calculator cal = new Calculator();
assertEquals(3, cal.subtract(6, 3));
}
}
assertEquals 는 static 메서드라 import static 으로 메서드를 import 한 후 위와 같이 구현할수 있다. assertEquals() 메서드의 첫 번째 인자는 기대하는 결과 값(expected)이고, 두 번째 인자는 프로덕션 코드의 메서드를 실행한 결과 값(actual)이다.
assertEquals() 메서드는 int, long, String 등 다양한 데이터 타입 지원이 가능하다. 위와 같이 구현한 후 JUnit Test 를 실행한다.
CalculatorTest 클래스가 가지는 두 개의 테스트가 모두 성공할 경우 초록색 바가 뜨면서 테스트가 성공했음을 알려준다.
만약 add() 메서드의 assertEquals() 메서드를 "assertEquals(8, cal.add(6, 3));" 와 같이 기대하는 값을 9에서 8로 변경한 후 실행하면 테스트가 실패하는 결과 화면이 나타난다. 실행 결과 화면에 빨간 바가 뜨면서 테스트 실패를 알린다. 실패한 테스트(add)를 선택하면 테스트 실패 원인을 알려준다.
이와 같이 JUnit 의 assertEquals() 메서드를 활용하면 지금까지 수동으로 확인했던 실행 결과를 자동화하는 것이 가능하다. JUnit 의 Assert 클래스는 assertEquals() 메서드 이외에도 결과 값이 true/false 인지를 확인할 수 있는 assertTrue(), assertFalse() 메서드, 결과 값이 null 유무를 판단할 수 있는 assertNull(), assertNotNull() 메서드, 배열 값이 같은지 검증하는 assertArrayEquals() 메서드를 제공하니 Assert 클래스 Javadoc 문서를 참고한다.
* 최근에는 JUnit 의 Assert 를 사용하기 보다 테스트의 의도를 더 쉽게 파악할 수 있는 기능을 제공하는 AssertJ 도 많이 사용한다.
참고도서 : https://roadbook.co.kr/169
[신간안내] 자바 웹 프로그래밍 Next Step
● 저자: 박재성 ● 페이지: 480 ● 판형: 사륙배변형(172*225) ● 도수: 1도 ● 정가: 30,000원 ● 발행일: 2016년 9월 19일 ● ISBN: 978-89-97924-24-0 93000 [강컴] [교보] [반디] [알라딘] [예스24] [인터파크] [샘
roadbook.co.kr
'교재 실습 > 자바 웹 프로그래밍 Next Step' 카테고리의 다른 글
2.3.1 요구사항 (0) | 2025.01.02 |
---|---|
2.2.3 테스트 중복 코드 제거 (0) | 2025.01.01 |
2.2.1 한 번에 메서드 하나에만 집중 (0) | 2024.04.03 |
2.2 JUnit을 활용해 main() 메서드 문제점 극복 (0) | 2024.03.27 |
2.1 main() 메서드를 활용한 테스트의 문제점 (0) | 2024.03.26 |
댓글