Unit Test10 8장 통합 테스트를 하는 이유 (2) : 언제 목을 써야할까? + 예시 8장 통합 테스트를 하는 이유 (2) 단위테스트 (블라디미르 코리코프) 8.2 어떤 프로세스 외부 의존성을 직접 테스트해야 하는가? 통합 테스트는 시스템이 프로세스 외부 의존성과 어떻게 통합하는지를 검증한다. 검증을 구현하는 방식은 두 가지가 있다. 실제 프로세스 외부 의존성을 사용 해당 의존성을 목으로 대체 두 가지 방식을 언제 적용해야 하는지에 대해 알아보자. 8.2.1 프로세스 외부 의존성의 두 가지 유형 모든 프로세스 외부 의존성은 두 가지 범주로 나뉜다. 관리 의존성 (전체를 제어할 수 있는 프로세스 외부 의존성): 이러한 의존성은 애플리케이션을 통해서만 접근할 수 있으며, 해당 의존성과의 상호 작용은 외부 환경에서 볼 수 없다. 대표적인 예로 데이터베이스가 있다. 외부 시스템은 보통 데이터베이.. 2023. 9. 14. 8장 통합 테스트를 하는 이유 (1) 단위테스트 (블라디미르 코리코프) 8장에서 다루는 내용 통합 테스트의 역할 이해 테스트 피라미드의 개념 자세히 살펴보기 가치 있는 통합 테스트 작성 단위 테스트는 비지니스 로직을 확인하는데 좋지만 비지니스 로직을 외부와 단절된 상태로 확인하는 것만으로는 시스템이 전체적으로 잘 작동하는지 확신할 수 없다. 각 부분이 데이터베이스나 메시지 버스 등의 외부 시스템과 어떻게 통합되는지 확인해야 한다. 이 장에서는 통합 테스트의 역할, 즉 언제 적용해야 하는지와 일반적인 단위 테스트나 심지어 빠른 실패(Fail Fast) 원칙과 같은 다른 기법에 의존하는 것이 좋을지 등을 알아본다. 또한 프로세스 외부 의존성 중에서 어느 것을 통합 테스트에서 그대로 사용하고 어느 것을 목으로 대체할지에 대해 판단하는 방법에 대해.. 2023. 9. 13. 7장 컨트롤러에서 조건부 로직 처리 (컨트롤러가 도메인의 세부사항을 모르도록 처리하자) 단위테스트 (블라디미르 코리코프) https://jonghoonpark.com/identifying-the-code-to-refactor https://jonghoonpark.com/refactoring-toward-valuable-unit-tests 에서 이어지는 글입니다. 비즈니스 로직과 오케스트레이션의 분리는 다음과 같이 비즈니스 연산이 세 단계로 있을 때 가장 효과적이다. 저장소에서 데이터 검색 비즈니스 로직 실행 데이터를 다시 저장소에 저장 그러나 이렇게 단계가 명확하지 않은 경우가 많다. 의사 결정 프로세스의 중간 결과를 기반으로 프로세서 외부 의존성에서 추가 데이터를 조회해야 할 수도 있다. 프로세스 외부 의존성 쓰기 작업도 종종 그 결과에 따라 달라진다. 이러한 상황에서는 다음과 같이 세 .. 2023. 8. 8. 7장 가치 있는 단위 테스트를 위한 리팩터링 단위테스트 (블라디미르 코리코프) https://jonghoonpark.com/identifying-the-code-to-refactor 에서 이어지는 글입니다. 복잡한 코드를 알고리즘과 컨트롤러로 나눠보자. 험블 객체 패턴을 사용해 일반화 하는 방법에 대해서 알아보자. 2.1 고객 관리 시스템 소개 사용자 등록을 처리하는 고객 관리 시스템을 샘플로 한다. 모든 사용자는 데이터베이스에 저장된다. 현재 시스템은 사용자 이메일 변경이라는 단 하나의 유스케이스만 지원한다. 이 연산에는 세 가지 비즈니스 규칙이 있다. - 사용자 이메일이 회사 도메인에 속한 경우 해당 사용자는 직원으로 표시된다. 그렇지 않으면 고객으로 간주한다. - 시스템은 회사의 직원 수를 추적해야 한다. 사용자 유형이 직원에서 고객으로, 또.. 2023. 7. 28. 7장 가치 있는 단위 테스트를 위한 리팩터링 - 리팩터링할 코드 식별하기 단위테스트 (블라디미르 코리코프) 7장에서 다루는 내용 - 네 가지 코드 유형 알아보기 - 험블 객체 패턴 이해 - 가치 있는 테스트 작성 1. 리팩터링할 코드 식별하기 기반 코드를 리팩토링 하지 않고서는 테스트 스위트를 크게 개선할 수 없다. * 테스트 스위트(test suite) 소프트웨어 프로그램을 테스트하여 특정 동작 집합이 있음을 보여주기 위한 테스트 케이스 모음 a collection of test cases that are intended to be used to test a software program to show that it has some specified set of behaviors. 테스트 코드와 제품 코드는 본질적으로 관련돼 있기 때문에 다른 방도는 없다. 1.1 코드의 네.. 2023. 7. 18. 6장 단위 테스트 스타일 – 함수형 아키텍처의 단점 이해 + 6장 요약 단위테스트 (블라디미르 코리코프) 아래 내용에서 이어지는 글입니다. https://jonghoonpark.tistory.com/43 https://jonghoonpark.tistory.com/44 https://jonghoonpark.tistory.com/45 https://jonghoonpark.tistory.com/47 안타깝게도 항상 함수형 아키텍처를 이룰 수 있는 것은 아니다. 또한 함수형 아키텍처라고해도, 코드베이스가 커지고 성능에 영향을 미치면서 유지 보수성의 이점이 상쇄된다. 5.1 함수형 아키텍처 적용 가능성 감사 시스템은 결정을 내리기 전에 입력을 모두 미리 수집할 수 있으므로 함수형 아키텍처가 잘 동작했다. 그러나 종종 실행 흐름이 간단하지 않을 수 있다. 의사 결정 절차의 중간 결과에.. 2023. 7. 15. 이전 1 2 다음