Back-end/Spring
스프링 부트 테스트 코드 (2) - AssertJ
J-Jay
2023. 9. 2. 22:35
728x90

AssertJ
AssertJ는 JUnit과 함께 사용해 검증문의 가독성을 높여주는 라이브러리이다.
이를테면 앞서 작성한 테스트 코드의 Assertion은 기대값과 실제 비교값이 명시하지 않으므로 비교 대상이 헷갈린다.
https://dev-junick.tistory.com/46
스프링 부트 테스트 코드 (1) - JUnit
테스트 코드 테스트 코드는 작성한 코드가 의도대로 잘 동작하고 예상치 못한 문제가 없는지 확인할 목적으로 작성하는 코드이다. 테스트 코드는 test 디렉터리에서 작업한다. 테스트 코드에도
dev-junick.tistory.com
기댓값과 비교값이 잘 구분되지 않는 예시
Assertions.assertEquals(a + b, sum);
큰문제가 아니라고 생각할 수 있지만 대규모 프로젝트에서는 조금 더 명확한 모습의 코드가 실수를 줄일 수 있어 이런 가독성은 꽤 중요한 문제이다. 하지만 이럴 때 AssertJ를 사용하면 가독성이 더 좋아진다.
가독성이 좋은 AssertJ 예시
assertThat(a + b).isEqaulTo(sum);
위의 코드의 경우 a와 b를 더한 값이 sum과 같아야 한다는 의미로 명확하게 읽히기에 가독성이 좋다고 할 수있다.
AsserJ에는 값이 같은지 비교하는 isEqaulTo(), isNotEqualTo() 외에도 다양한 메서드를 제공한다.
자주 사용하는 메서드는 아래와 같다.
| 메서드 | 설명 |
| isEqualTo(A) | A 값과 같은지 검증 |
| isNotEqualTo(A) | A 값과 다른지 검증 |
| contains(A) | A 값을 포함하는지 검증 |
| doesNotContain(A) | A 값을 포함하지 않는지 검증 |
| startsWith(A) | 접두사가 A인지 검증 |
| endsWith(A) | 접미사가 A인지 검증 |
| isEmpty() | 비어있는 값인지 검증 |
| isNotEmpty() | 비어있지 않은 값인지 검증 |
| isPositive() | 양수인지 검증 |
| isNegative() | 음수인지 검증 |
| isGreaterThan(1) | 1보다 큰 값인지 검증 |
| isLessThan(1) | 1보다 작은 값인지 검증 |