본문 바로가기
Spring Framework

[Spring/Testing] 단언문에 에러 메시지 포함하기

by kmmguumnn 2020. 4. 5.

테스트 코드를 작성할 때, 흔히 아래와 같이 단언문(assertion)을 작성한다.

assertThat(owner.getLastName()).isEqualTo(newLastName);

 

owner의 실제(actual) lastNamenewLastName과 같으면 아무 일도 일어나지 않으면서 테스트가 성공하고, 값이 다르다면 빨간 막대가 뜨면서 테스트가 실패할 것이다.

 

물론 이렇게만 작성해도 테스트가 실패한 이유를 테스트 러너가 제공하기는 한다.
"어떤 값을 expect했는데, 실제로는 이런 값이 나왔다"라면서...

 

하지만 사람이 읽고 좀 더 이해하기 쉽도록 메시지를 넣어준다면 더 좋을 것이다.
《JUnit in Action에서는 "assert 메서드를 호출할 때는 에러 메시지도 무조건 함께 기입하는 습관"을 들이라고 권하고 있다.

 

AssertJ의 경우 assertThat() 다음에 as()를 호출하고, 파라미터로 메시지를 넣어주면 된다.
해당 테스트가 실패했을 경우 as() 안에 기입한 메시지가 콘솔에 나타나게 된다.

assertThat(owner.getLastName()).as("lastName과 newLastName이 같지 않음")
	.isEqualTo(newLastName);

 

해당 테스트를 작성한 본인이 아닌, 다른 팀원이 해당 테스트 코드를 읽을 때나 혹은 테스트 실패 시 원인을 파악할 때 도움이 될 것 같다.

댓글