더 좋은 테스트 코드 작성하기 3 - Dynamic Test / TestCode(11)공부방2023. 7. 14. 06:57
Table of Contents
728x90
728x90
서론
본 포스팅은 아래의 인강을 듣고, 추가 공부가 필요한 내용들을 포함하여 정리한 포스팅입니다.
Dynamic Test
환경을 설정해놓고, 중간중간 변화를 주며 검증을하는 등의 시나리오를 테스트하고 싶을 때 사용한다.
@TestFactory
Stream<DynamicTest> exampleDynamicTest() {
return Stream.of(
dynamicTest("First Dynamic Test", () -> {
// test code
}),
dynamicTest("Second Dynamic test", () -> {
// test code
})
);
}
사용 방법 및 특징
- @TestFactory 애너테이션을 사용하여 작성한다. 이 때 메서드는 private / static이 되면 안된다.
- 또한 Stream, Collection, Iterable 또는 Iterator을 반환해야 한다. 그렇지 않으면 JUnitException에 걸린다.
- 테스트 수는 동적이며, ArrayList 크기에 따라 달라진다.
- 테스트 이름과 실행 함수, 두 가지 요소로 이루어져 있으며 테스트 이름을 잘 작성하여 가독성을 높일 수 있어야 한다.
- 테스트 생명 주기와 관련된 요소들을 사용할 수 없다(Test Fixture Method - @AfterEach 등)
- 런타임 시점에 테스트 케이스를 생성할 수 있어 유연하다.
잡담
아직 사용해 본 경험이 없어 개념 정도만 정리해두었다.
테스트 관련 공부를 끝내고 토이 프로젝트 하나 진행해보면서 Dynamic Test를 통한 시나리오 테스트를 한번 진행해봐야겠다. 회원가입이라던가 로그인 같은 걸로..
References
https://www.baeldung.com/junit5-dynamic-tests
관련 포스팅
테스트 코드를 작성하는 이유 - TestCode (1)
JUnit 5를 사용한 Java 단위 테스트 - TestCode (3)
통합 테스트(Integration Test) - TestCode(6)
@AfterEach, @BeforeEach - TestCode(7)
Mock / Test Double - TestCode (8)
728x90
300x250
@mag1c :: 꾸준히 재밌게
2023.04 ~ 백엔드 개발자의 기록
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!