loop-study
개발 공부할래?
loop-study
전체 방문자
오늘
어제
  • 분류 전체보기 (186)
    • 목표 및 회고 (25)
    • 세미나 & 워크샵 (1)
    • 교육 및 인강 (67)
      • TDD, Clean Code with Java (5)
      • ATDD, 클린 코드 with Spring (6)
      • DDD 세레나데 (3)
      • 인프라 공방 (6)
      • 이규원의 현실 세상의 TDD (19)
      • 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 (18)
      • 스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 (0)
      • 모든 개발자를 위한 HTTP 웹 기본 지식 - 김영한 (8)
      • 코딩으로 학습하는 GoF의 디자인 패턴 (1)
      • 스프링 시큐리티 완전정복 6.x (1)
    • 서적 (62)
      • 객체지향의 사실과 오해 (1)
      • 객체지향과 디자인패턴 (7)
      • 만들면서 배우는 클린 아키텍처 (3)
      • 테스트 주도 개발로 배우는 객체 지향 설계와 실천 (1)
      • 오브젝트: 코드로 이해하는 객체지향 설계 (17)
      • 리팩토링 : 코드 구조를 체계적으로 개선하여 효율적인 리팩터링 구현하기 (0)
      • 토비의 스프링 (3)
      • 엔터프라이즈 애플리케이션 아키텍처 패턴 (9)
      • 개발자의 글쓰기 (1)
      • 소프트웨어 장인 (17)
      • Real MySQL 8.0 (2)
    • 개발 & 방법론 (29)
      • Java (13)
      • TDD (5)
      • ATDD (3)
      • DDD (6)
      • 인프라 (2)
      • SQL (0)
    • 개인이야기 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • 백엔드 로드맵

인기 글

태그

  • 엔터프라이즈 애플리케이션 아키텍처 패턴
  • 추상화
  • 테스트 주도 개발
  • 객체지향
  • 넥스트스탭
  • 인프런
  • 현실세상의 TDD
  • 스프링
  • ATDD
  • fastcampus
  • TDD
  • 백기선
  • Patterns of Enterprise Application Architecture
  • Test Driven Development
  • 자바
  • 오브젝트
  • 스터디
  • 조영호
  • 인프라공방
  • 이규원
  • 김영한
  • 모든 개발자를 위한 HTTP 웹 기본 지식
  • DDD 세레나데
  • 소프트웨어 장인
  • nextstep
  • study
  • java
  • JUnit
  • 장인정신
  • 마틴 파울러

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
loop-study

개발 공부할래?

교육 및 인강/이규원의 현실 세상의 TDD

이규원님의 현실 세상의 TDD 깊은 곳, 5편 : Mockists vs Classicists

2021. 5. 27. 21:37

테스트 주도 개발의 깊은 곳 5편, Mockists vs Classicists 다.

테스트 대역에 사용함에 있어 주의해야할 점이 주된 내용이며, 실습 위주 교육이다 

여기에 실습 관련 코드는 포함하지 않으니 

📖 자세한 내용이 궁금하면 이규원 님의 TDD 수강하는 걸 추천드립니다. 👍 

 

The RED : 이규원의 현실 세상의 TDD : 안정감을 주는 코드 작성 방법 | 패스트캠퍼스

그동안 우리나라에는 TDD를 제대로 다루는 책도 강의도 없었죠. 그래서 제가 개발 현장에서 활용하는 TDD를 정확하게 알려드리고자 강의를 만들었습니다. 이제 TDD에 대한 잘못된 인식은 버리고, '

fastcampus.co.kr


Sociable 테스트

단위테스트가 SUT를 구동할 때 의존해야할 의존대상까지 구동하여 테스트

 

Solitary 테스트

위와 비슷하지만 의존대상이 아닌 테스트 대역으로 테스트 

 

 

가정의 안정도

테스트 대역 사용으로 얼마나 신뢰할 수 있는가? (의존성 인터페이스의 복잡도를 수학공식으로 보여주시는데 공식은 이해못함.)

- 인터페이스가 단순할 수록 1에 가까워 짐 (안정)

- 인터페이스가 복잡할 수록 0에 가까워 짐 (불안정)

 

 

Mock의 위험

상태 검증 vs 행위 검증

: Mock을 사용하면 행위 검증에 가깝다. 테스트를 정상적으로 돌리기 위해 행위 중심으로 대역을 만들기 때문

 

정보 숨김 위배

: 테스트 대역을 만들기 위해선 내부 구현 행위를 알아야한다

 

테스트가 SUT 구현에 의존, 고통스럽고 불안한 리팩터링

: 리팩터링으로 내부 구현이 변경되면 테스트 대역도 같이 변경해야 하니 고통이 따라온다, 사용하는 곳이 많아질 수록 실수할 확률이 올라간다. 

 


후기

이전 시간에는 테스트 대역에 대한 장점이였다면 이번에는 대역의 위험성이였다.

테스트 대역 사용으로 테스트를 어느 정도 신뢰있게 검증이 가능할 수 있지만,

실습을 통해 테스트가 행위 위주 검증으로 변경되어 위험이 있다는 걸 알게 되었다.

 

그리고 Mockists, Classicists 같이 테스트 기법, 유형, 패턴, 스타일에 따라 결과물이 달라진걸 볼 수 있었다.
 

다음 시간에는 테스트를 하다보면 겪게되는 private 메소드를 테스트를 해야한지에 대해 알아본다.

 

'교육 및 인강 > 이규원의 현실 세상의 TDD' 카테고리의 다른 글

이규원님의 현실 세상의 TDD 깊은 곳, 7편 : 테스트 주도 설계  (0) 2021.05.28
이규원님의 현실 세상의 TDD 깊은 곳, 6편 : Should i test private methods  (0) 2021.05.28
이규원님의 현실 세상의 TDD 깊은 곳, 4편 : 테스트 대역  (0) 2021.05.26
이규원님의 현실 세상의 TDD 깊은 곳, 3편 : 입력과 출력  (0) 2021.05.20
이규원님의 현실 세상의 TDD 깊은 곳, 2편 : 환경 변화와 적응력  (0) 2021.05.19
    '교육 및 인강/이규원의 현실 세상의 TDD' 카테고리의 다른 글
    • 이규원님의 현실 세상의 TDD 깊은 곳, 7편 : 테스트 주도 설계
    • 이규원님의 현실 세상의 TDD 깊은 곳, 6편 : Should i test private methods
    • 이규원님의 현실 세상의 TDD 깊은 곳, 4편 : 테스트 대역
    • 이규원님의 현실 세상의 TDD 깊은 곳, 3편 : 입력과 출력
    loop-study
    loop-study
    오늘도 공부하자

    티스토리툴바