회원가입 API를 개발한 후 테스트 코드를 작성하기로 했다

 

UserDto에 @Validated 어노테이션을 붙여주었기에, 정상적으로 유효한 값만 작동을 하는지에 대한 테스트 코드를 작성하는 중이었다

 

가장 작은 단위부터 테스트하는 단위테스트의 정의를 토대로 여러 유효성 검증 테스트를 작성하던 도중, 다른 팀원분께서 각 코드마다 중복된 사용의 문제점에 대해서 우려를 나타내셨다

그리고 팀원분은 한번에 유효성 검사를 하는 메소드를 원하셨다

각각 유효성 검사를 하면서 어느 유효성 검사를 하는지 알 수 있는 코드 vs 한번에 유효성 검사를 하되 어느 유효성 검사를 하는지 잘 알지 못하는 코드

2가지 테스트 코드 작성방향의 절충안을 다른 팀원분께서 알려주셨다

 

그 방법은 바로 Parameterized Test

 

Parameterized Test란 여러 argument를 이용해 테스트를 여러번 돌릴 수 있는 기능으로써, 한번에 검사를 할 수 있는 기능이었다

또한 내가 원했던 방식인, 여러 argument를 통해 테스트를 여러번 진행하는 동안 결과 화면에 다음과 같이 어떤 테스트를 진행했는지 알 수 있었다

 

 

UserDto를 파라미터로 사용하기 위해 MethodSource를 활용하였고, 다음과 같은 코드를 통해 테스트 코드를 작성할 수 있었다

 

 

오늘도 새로운 어노테이션, 그리고 효율적으로 테스트 코드를 작성하는 법을 배웠다!

 

 

=> 기존에 작성한 코드는 이메일 null과 비밀번호 null이 한번에 있는 경우, 즉 validation 에러가 1개가 넘는 경우에는 적용하기 힘들다는 단점이 있어서 코드를 보완함

기대값이 true면 violations이 0개, 기대값이 false면 violations이 1개 이상으로 테스트 진행!

복사했습니다!