면접준비
테스트 코드 특강
everyday-spring
2024. 9. 10. 19:56
Given - When - Then
Given 자원할당 테스트를 위한 세팅 anyLong
When 테스트 유닛 실행
Then 결과 검증 assert..., verify
Junit5
Java 언어에서 사용되는 단위 테스트 프레임워크
Dependency
'org.springframework.boot:spring-boot-starter-test'
Simple Sum Test
public class BasicTest {
@Test
@DisplayName("더하기 테스트")
public void calTest() {
// given
int a = 1;
int b = 3;
// when
int sum = a + b;
// then
// 두 값이 같다
assertEquals(4, sum);
}
}
@Mock
테스트를 위한 가짜 객체
@InjectMocks
Movk 객체를 주입하여 실제 객체의 의존성을 자동으로 설정함 mock이 아닌 실제 객체
테스트하려는 실제 객체를 생성하고, 그 객체의 의존성들만 mocking된 객체로 대체하는 것
Mockito
mock객체를 만들고 관리하고 검증할 수 있는 방법을 제공하는 프레임워크
@SpringBootTest와 다르게 별도 환경, 구성에 대한 제약 사항이 없기 때문에 매우 빠르게 동작
Unit Test
Unit (함수, Method) 애플리케이션에서 가장 작은 테스트 가능 요소
FIRST원칙
- Fast 유닛 테스트는 빨라야함
- Isolated 테스트는 독립적으로 실행해야함
- Repeatable 환경에 상관없이 실행할 때마다 같은 결과를 만들어야함
- Self-Validating 명확히 성공/실패로 구분하여 자체로 결과를 검증할 수 있어야함
- Timely 개발간에 즉시 작성해야함 "TDD방법론"