2.1.3 UserDaoTest의 문제점
•
수동 확인 작업의 번거로움
◦
콘솔에 출력된 값을 직접 보고 판단해야 함
•
실행 작업의 번거로움
2.2 UserDaoTest 개선
2.2.1 테스트 검증의 자동화
⇒ 스스로 테스트 수행과 기대하는 결과에 대한 확인까지 해주는 코드로 된 자동화된 테스트
2.2.2 테스트의 효율적인 수행과 결과 관리
•
JUnit 테스트로 전환
◦
JUnit은 프레임워크 → main() 매소드 X , 오브젝트를 만들어서 실행시키는 코드 필요 X
•
테스트 메소드 전환
◦
main() 메소드(직접 제어) → 일반 메소드(IoC)
◦
조건1. public 선언
◦
조건2. @Test 라는 애노테이션 붙이기
•
검증 코드 전환
◦
if/else ⇒ JUnit이 제공하는 방법을 이용해 전환
◦
// if/else문으로 테스트
if (!user.getName().equals(user2.getName())){ ... }
// ==> JUnit이 제공하는 assertThat이라는 스태틱 메소드를 이용해 변경
assertThat(user2.getName(), is(user.getName()));
// 두 번째 if 문장
assertThat(user2.getPassword(), is(user.getPassword()));
Java
복사
•
assertThat() 메소드
◦
첫 번째 파라미터의 값을 뒤에 나오는 매처matcher라고 불리는 조건으로 비교해서 일치하면 다음으로 넘어가고,
아니면 테스트가 실패하도록 만들어 줌
◦
is()는 매처의 일종으로 equals()로 비교해주는 기능을 가짐
•
JUnit 테스트 실행
◦
성공 ⇒ OK
◦
실패 ⇒ FAILURES
▪
기대한 결과가 아니면 AssertionError를 던짐


