테스트
1) maven 기준
junit-jupiter - dependency
maven-surefire-plugin -plugin
2) gradle 기준
dependencies {
testImplementation 'org.junit.jupiter:junit-jupiter-api:버전'
}
test {
user UnitPlatform()
}
테스트로 사용할 클래스에 @Test 붙이면 테스트 가능 ( private x)
참고)
테스트용 클래스 -> 명칭 Test 관례
1) assertEquals(expected, actual) : 예상했던 값이 실제 결과와 일치하는 지
2) assertNotEquals(unexpected, actual) : 예상했던 값과 다르면 통과
3) assertSame (Object expected, Object actual) : 예상했던 객체와 실제 객체가 일치하는지(==, 동일성)
4) assertNotSame(Object unexpected, Object actual) : 예상했던 객체와 실제 객체가 다르면 통과
5) assertTrue(boolean condition) : true가 나오면 통과
6) assertFalse(boolean condition) : false가 나오면 통과
7) assertNull(Object actual) : null이 나오면 통과
8) assertNotNull(Object actual) : null이 나오지 않으면 통과
9) fail() : 특정 상황에서 테스트 실패를 유도하는 경우
10) assertThrows(Class expectedType, Executable executable) :
expectedType - 발생 예상되는 예외 클래스 클래스
executable - 실행 코드
11) assertDoesNotThrow(Executable executable)
executable - 실행코드
실행 코드 실행시 예외가 발생 하지 않으면 통과
12) assertAll(Executable... executable)
:
참고)
TDD(Test Driven Development) : 테스트 주도 개발
테스트를 통한 설계 방식
테스트 하기위한 시나리오 -> 필요한 기능을 개발 - > 테스트 실행 -> 통과x -> 기능 보완(리팩토링) -> 통과 -> 기능완성
-테스트 하기위한 시나리오 -> 복잡한 시나리오
지속적인 리팩토링 (코드의 수정 보완)
1) @DisplayName : 테스트에 대한 설명
2) @Disabled : 테스트 배제
test 의존성을 설정해줘야함
1) @BeforeEach 애노테이션
: 각각의 단위 테스트 메서드 실행 전에
2) @AfterEach 애노테이션
: 각각의 단위 테스트 메서드 실행 후에
3) @BeforeAll 애노테이션
: 모든 테스트 실행 전 (한 번만 실행)
: 정적 메서드로 정의
4) @AfterAll 애노테이션
: 모든 테스트 실행 후 (한 번만 실행)
: 정적 메서드로 정의
-모든 테스트 실행
1) mvn test
mvn package
2) gradle test
gradle build
테스트 할때 제외됨
-성능 테스트