본문 바로가기
교재 실습/자바 웹 프로그래밍 Next Step

2.2.2 결과 값을 눈이 아닌 프로그램을 통해 자동화

by Jint 2024. 5. 6.

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

댓글