본문 바로가기

단위 테스트10

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.
6장 단위 테스트 스타일 – 함수형 아키텍처와 출력 기반 테스트로의 전환 단위테스트 (블라디미르 코리코프) 아래 내용에서 이어지는 글입니다. https://jonghoonpark.tistory.com/43 https://jonghoonpark.tistory.com/44 https://jonghoonpark.tistory.com/45 두 가지 리팩터링 단계를 거친다. - 프로세스 외부 의존성에서 목으로 변경 - 목에서 함수형 아키텍처로 변경 4.1 감사 시스템 소개 샘플로 사용할 프로젝트는 조직의 모든 방문자를 추적하는 감사 시스템이다. 텍스트 파일을 기반 저장소로 사용한다. 시스템은 가장 최근 파일의 마지막 줄에 방문자의 이름과 방문 시간을 추가한다. 파일당 최대 항목 수에 도달하면 인덱스를 증가시켜 새 파일을 작성한다. 초기 구현은 다음과 같다. 위 코드는 다음과 같은 작업.. 2023. 7. 15.
6장 단위 테스트 스타일 - 함수형 아키텍처 단위테스트 (블라디미르 코리코프) 아래 내용에서 이어지는 글입니다. https://jonghoonpark.tistory.com/43 https://jonghoonpark.tistory.com/44 3. 함수형 아키텍처 이해 함수형 아키텍처의 기본 원리에 대해서 설명한다. 3.1 함수형 프로그래밍이란 함수형 프로그래밍은 수학적 함수(mathematical function, 순수 함수 라고도 함)를 사용한 프로그래밍이다. [Note] 순수 함수는 다음 속성을 갖는 함수입니다. - 함수 반환 값은 동일한 인수에 대해 동일합니다 - 함수에는 사이드 이펙트가 없습니다 (로컬 정적 변수, 비로컬 변수, 가변 참조 인수 또는 입력/출력 스트림의 변형 없음). 출처 : https://en.wikipedia.org/wi.. 2023. 7. 13.