SMALL
JUnit5
자바 단위 테스팅 프레임워크.
공식 문서 : https://junit.org/junit5/docs/current/user-guide/#writing-tests
공식문서 : https://www.petrikainulainen.net/programming/testing/junit-5-tutorial-writing-parameterized-tests/
@Test : 테스트 매서드임을 나타낸다.
@DisplayName : 테스트 클래스 또느 매서드의 사용자 지정 이름
아래에 예시
@DisplayName("패스워드 검사기")
@Test
void validatePasswordTest() {
}
@ParameterizedTest : 파라미터로 값 가져오기.
@ValueSource( strings = {"password1324@","password3284jnd@"})
@DisplayName("비밀번호가 8자 미만 또는 12자 초과인 경우 IllegalArgumentException 예외를 발생.")
@ParameterizedTest //다른것들은 주소 참고. -> https://www.petrikainulainen.net/programming/testing/junit-5-tutorial-writing-parameterized-tests/
@ValueSource(strings = {"123456", "123456789123"})
void validatePasswordTest3(String password) {
//ParameterizedTest 는
//ValueSource 에 있는 값들을 validatePasswordTest3 매서드의 매개변수로 넣어줘서 테스트 진행.
}
AssertJ
테스트 코드의 가독성을 높여주는 라이브러리
공식 문서 : https://assertj.github.io/doc/#assertj-core-assertions-guide
메서드 설명
isEqualTo(expected) | 객체의 값이 주어진 값과 동일한지 확인합니다. |
isNotEqualTo(expected) | 객체의 값이 주어진 값과 다른지 확인합니다. |
isNull() | 객체가 null인지 확인합니다. |
isNotNull() | 객체가 null이 아닌지 확인합니다. |
isInstanceOf(expectedClass) | 객체가 주어진 클래스의 인스턴스인지 확인합니다. |
isNotInstanceOf(expectedClass) | 객체가 주어진 클래스의 인스턴스가 아닌지 확인합니다. |
isSameAs(expected) | 객체가 주어진 객체와 동일한 객체인지 확인합니다. |
isNotSameAs(expected) | 객체가 주어진 객체와 동일한 객체가 아닌지 확인합니다. |
isTrue() | 불리언 값이 true인지 확인합니다. |
isFalse() | 불리언 값이 false인지 확인합니다. |
contains(expected) | 컬렉션이나 배열이 주어진 값이 포함되어 있는지 확인합니다. |
doesNotContain(expected) | 컬렉션이나 배열이 주어진 값이 포함되어 있지 않은지 확인합니다. |
startsWith(expected) | 문자열이 주어진 값으로 시작하는지 확인합니다. |
endsWith(expected) | 문자열이 주어진 값으로 끝나는지 확인합니다. |
matches(expectedRegex) | 문자열이 정규 표현식과 일치하는지 확인합니다. |
isGreaterThan(expected) | 숫자가 주어진 값보다 큰지 확인합니다. |
isLessThan(expected) | 숫자가 주어진 값보다 작은지 확인합니다. |
아래에 예시코드이다.
@DisplayName("비밀번호가 8자 미만 또는 12자 초과인 경우 IllegalArgumentException 예외를 발생.")
@ParameterizedTest
@ValueSource(strings = {"123456", "123456789123"})
void validatePasswordTest3(String password) {
//ParameterizedTest 는
//ValueSource 에 있는 값들을 validatePasswordTest3 매서드의 매개변수로 넣어줘서 테스트 진행.
Assertions.assertThatCode(() -> PasswordValidator.validate(password))
.isInstanceOf(IllegalArgumentException.class)
.hasMessage("비밀번호는 최소 8자 이상 12자 이하여야 한다.");
}
public class PasswordValidator {
public static void validate(String password) {
int length = password.length();
if(!(length >= 8 && length < 12)){
throw new IllegalArgumentException("비밀번호는 최소 8자 이상 12자 이하여야 한다.");
}
}
}
반응형
LIST
'Spring' 카테고리의 다른 글
Querydsl (2) | 2023.05.19 |
---|---|
Rest Repositories (0) | 2023.05.19 |
DTO, Entity, Response 연관관계 (0) | 2023.05.16 |
JPA (1) (0) | 2023.05.11 |
TDD, BDD 개발 방법 (0) | 2023.05.02 |