본문 바로가기

test & refactoring8

[테스트 및 리팩토링 9편] Junit5 정리 목차는 테스트 & 리팩토링 목차 에 있습니다. [테스트 및 리팩토링 9편] Junit5 정리 추후 찾아보기 위해 정리했습니다. 내용을 보강할 예정입니다. ExtendWith Junit5 의 라이프사이클 중 Test 에서 사용할 기능을 확장하는 것입니다. ExtendWith (SpringExtension.class) spring TestContext + Junit5 통합하여 사용합니다. 인터페이스 : BeforeAllCallback, AfterAllCallback, TestInstancePostProcessor, BeforeEachCallback, AfterEachCallback, BeforeTestExecutionCallback, AfterTestExecutionCallback, ParameterReso.. 2023. 10. 10.
[테스트 및 리팩토링 8편] fixture-monkey 정리 source 는 Github 에 있습니다. 목차는 테스트 & 리팩토링 목차 에 있습니다. [테스트 및 리팩토링 8편] fixture-monkey 정리 fixture-monkey 테스트 데이터를 만들어주는 오픈소스입니다. 나중에 찾아볼 용도로 정리했습니다. source 자바, gradle 환경 에서 실행했습니다. (Java17) gradle 설정하는데 시간이 오래걸렸는데 처음에는 fixture-monkey-starter 만 설치하면 관련 plugin 은 전부 import 되는줄 알았는데, 그게 아니였습니다. 그래서 그냥 서드 파티 관련 gradle 설정을 전부 넣어버렸습니다. 아래 중에 필요한 서드 파티 설정만 추가하시면 될 것 같습니다. 주의사항으로는 FixtureMonkey 를 통해 데이터를 만들 때,.. 2023. 5. 5.
[테스트 및 리팩토링 7편] TestContainer Example source 는 Github 에 있습니다. 목차는 테스트 & 리팩토링 목차 에 있습니다. [테스트&리팩토링 7편] TestContainer Example TestContainer 란? DB, 큐, 메시지 브로커 등을 제공해주는 가상 컨테이너입니다. Java, Kotlin 과 같은 JVM 기반에서 동작하며, Docker 를 필요로 합니다. docker-compose 는 언어와 관계 없이 사용할 수 있으며, TestContainer 는 코드 레벨에서 제어할 수 있습니다. 코드에서 제어할 수 있기에 docker 만 떠있다면 테스트 코드에 container 기동, 중단 로직을 넣어서 테스트를 수행할 때, 한 번에 수행할 수 있는 특징이 있습니다. 소스 설명 Spring boot, spring data jpa, .. 2023. 4. 22.
[테스트 & 리팩토링 6편] 팩토리 패턴 if else 줄이기 (map, functional interface 사용) source 는 Github 에 있습니다. 목차는 테스트 & 리팩토링 목차 에 있습니다. [테스트 & 리팩토링 6편] 팩토리 패턴 if else 줄이기 (map, functional interface 사용) 팩토리 패턴이란? 객체를 생성해주는 패턴 중 하나 입니다. 객체를 생성하는 인터페이스를 미리 정의하고, 인스턴스를 만들 클래스의 결정을 서브 클래스에서 결정합니다. 아래 소스는 팩토리 패턴으로 구현한 소스이며, 리팩토링 전입니다. If else 를 줄이는 방법 아래와 같이 Map 에 집어넣고 데이터를 가져온다면 if else 를 줄일 수 있습니다. interface 구현 없이 Functional interface 사용 Supplier functional interface 는 매개변수 없이 T 를 리턴.. 2022. 8. 1.