'유류 코드 개선 지침'독서노트(의 2)

3400 단어 Java

코드 개선 지침서라는 책을 읽고 자신이 설명한 내용을 기록했다.
저번 코드를 개선하려는 생각을 정리했다.
이번에는 실제 테스트 코드를 써 봅시다.
책에는 테스트 코드에 대한 쓰기가 2부, 3부로 되어 있다.두 번째 부분에서는 많은 페이지가 나와 실제 개발 현장의 많은 실례를 명확하게 설명하여 매우 재미있다.3부에서는 2부에서 설명한 다양한 내용을'수법'으로 요약하고 설명을 참고한다.
주로 3부 내용을 겨냥해 사용 빈도가 높은'수법'을 기록했다.

코드 쓰기 테스트


명명 규칙


테스트 코드를 쓸 때 제작되는 각종 반에 대해 추천하는 명명 규칙으로 다음과 같은 규칙을 소개했다.실제로 반을 만들 때 길을 잃는 것도 번거롭다. 이런 규칙을 기억하는 것이 편리하다.
  • 테스트 클래스: XxTest
  • 테스트용 하위 클래스: TestingXxx
  • 모듈 클래스: Fakey
  • ※ "Xxx"는 테스트 대상의 클래스입니다.'Yyy'는 테스트 대상류에 의해 호칭된 반의 이름이다.

    방법 일람


    테스트 코드를 쓸 때 자주 문제가 발생하는데 이것은 테스트 대상 클래스와 다른 클래스 간의 의존 관계이다.의존 관계를 배제하는 24가지 방법을 소개했다.
    각 기법에 관해서는 개인적인 느낌이지만 사용 빈도를 3단계로 표시하고 어떤 의존을 해결하는 방법을 총결하였다.(빈도가 낮은 수법으로 설명을 조금 생략했다.)
    No.
    이름:
    빈도
    해결 의존점
    25.1
    매개 변수 일치

    매개변수(비응용 프로그램 클래스)
    25.2
    방법 대상 추출

    구조기/방법
    25.3
    정의 완성
    ×
    (생략) ※ 링크 전환.혼란이 생기다.
    25.4
    글로벌 참조 패키지

    전역 변수
    25.5
    정적 방법 공개

    구조기
    25.6
    추출 및 재작성 호출

    메서드
    25.7
    Factory Method 추출 및 재작성

    구조기
    25.8
    get 방법의 추출 및 다시 쓰기
    ×
    (생략) ※ C++ 특유
    25.9
    인출
    ×
    (생략) ※ 타협명명 시 필요 없음
    25.10
    추출 인터페이스

    매개변수(응용 프로그램 클래스)
    25.11
    인스턴스 이전 가져오기

    static 방법
    25.12
    정적 set 가져오기 방법

    메서드
    25.13
    링크로 바꾸기
    ×
    (생략) ※ 링크 전환.혼란이 생기다.
    25.14
    구조기 매개 변수화

    구조기
    25.15
    방법 매개 변수화

    메서드
    25.16
    매개변수의 원시화
    ?
    (생략) ※ 이해 불가
    25.17
    방법과 변수의 향상
    ×
    (생략) ※ 학급 설계가 흐트러질 수 있음
    25.18
    의존 관계를 배제하다
    ×
    (생략) ※ 학급 설계가 흐트러질 수 있음
    25.19
    함수 포인터 대체 함수
    ×
    (생략) ※ C/C++ 특유
    25.20
    get 방법으로 전역 인용 바꾸기

    전역 참조
    25.21
    하위 클래스화와 방법의 재작성

    구조기/방법
    25.22
    인스턴스 변수 교환
    ×
    (생략) ※ C++ 특유
    25.23
    템플릿에서 재정의
    ×
    (생략) ※ C++ 특유
    25.24
    텍스트 재정의
    ×
    (생략) ※ 루비 특유

    수법의 사용처


    상술한 수법 중에서 사용 빈도가 높은 수법에 대해 사용처를 고려해 보았다.도안을 너무 가늘게 나눠도 나는 쓸 줄 몰라서 대충 나눴다.
  • 테스트 대상 클래스의 실례를 생성해야 하지만 실례를 생성하기 어렵다(구조기에 달려 있다)
  • 테스트 대상의 방법이 실례 변수에 의존하지 않을 때→25.5 공개 정적 방법
  • 구조기 파라미터에 전달되는 실례를 생성하기 어려우며 외부 정의 파라미터 클래스→25.1 파라미터의 일치를 적용할 경우
  • 구조기 파라미터에 전달되는 실례를 생성하기 어렵고 응용 프로그램에서 파라미터 종류를 정의하면 25.10 인터페이스를 추출합니다
  • 구조기 내의 처리에서 다른 종류의 실례 생성 부분이 비교적 어려운 상황에서 →25.14 구조기의 매개 변수화나 25.7 Factory Method의 추출과 재작성 ※ 이 두 가지 용법은 아직 이해할 수 없습니다.
  • 구조기 내 처리에서 일부 처리가 어려울 때→25.6 호출된 추출과 재작성
  • 테스트 대상의 방법 동작을 어렵게 할 때(방법에 따라)
  • 방법에 전달되는 매개 변수의 실례를 생성하기 어렵다. 외부 정의 매개 변수 클래스→25.1 매개 변수의 일치를 적용하면
  • 전달된 방법의 매개 변수를 생성하기 어렵고 응용 프로그램에서 매개 변수 종류를 정의하면 25.10 인터페이스를 추출합니다
  • 방법 내의 처리에서 다른 종류의 실례 생성이 일부 어려운 경우→25.15 방법의 매개 변수화 또는 25.6 호출된 추출과 재작성 ※ 이 두 가지 구분은 아직 이해할 수 없습니다.
  • 방법 내 처리 중 일부 처리가 어려울 때→25.6 호출된 추출 및 재작성
  • 끝맺다


    책의 내용을 이해하지 못하는 부분이 있다.잘못된 해석도 있을 수 있다.그럼에도 불구하고 자신을 위해 개인적인 느낌으로 정리해봤습니다.
    그리고 사용 빈도가 높은 수법에만 관해서는 구체적인 실시 방법을 총결하고 다음에 기회가 있기를 바랍니다.
    독서 노트는 이것으로 끝냅니다.

    좋은 웹페이지 즐겨찾기