상세 컨텐츠

본문 제목

실용주의 단위테스트. 9장. 더 큰 설계 문제.

TIL/실용주의 단위 테스트

by box-jeon 2021. 11. 27. 17:26

본문

SRP: Single Responsibility Principle

현재 Profile 클래스는 데이터 모델로서의 역할과 매처로서의 역할을 다 가지고 있습니다. 클래스는 변경할 때 한 가지 이유만 있어야 합니다. 클래스는 작고 단일 목적을 추구합니다.

 

새로운 클래스 추출

Profile 클래스가 실세계 개념에 잘 맞는다는 이유만으로 단일 클래스로 한정한다면 피해가 커질 것입니다.

 

명령-질의 분리

어떤 값을 반환하고 부작용을 발생시키는 (시스템에 있는 어떤 클래스 혹은 엔터티의 상태 변경) 메서드는 명령-질의 분리(command-query separation) 원칙을 위반합니다.

 

단위 테스트의 유지 보수 비용

리팩토링으로 인해 단위테스트가 깨지기 시작할 때, 이를 고치기 위한 노력은 단위 테스트를 소유하는 비용에 해당합니다. 단위테스트를 통해 얻을 수 있는 가치가 더 크기 때문에, 받아들여야 하는 비용입니다. 

리팩토링은 코드의 동작을 변경하지 않고 코드 구현을 바꾸는 활동입니다. 리팩토링 후 실패하는 테스트의 정도를 부정적인 설계의 지표로 생각해볼 수 있습니다. 더 많은 테스트가 동시에 깨질 수록 더욱더 많은 설계 문제가 있을 수 있습니다.

 

다른 설계에 관한 생각들

시스템 설계에 대해 비판적인 눈을 유지하고 최상의 설계는 없다는 것을 명심해야 합니다. 시스템을 깨끗하게 하는 책임은 결코 끝이 없습니다.

 

 

자바와 JUnit을 활용한 실용주의 단위 테스트

단위 테스트 작성 이유부터 테스트 가이드라인, 목 객체 사용법, 자동화된 단위 테스트, 리팩토링까지 단위 테스트의 핵심 내용을 설명한다. 또한, 단위 테스트를 단계별로 실습할 수 있게 구성

www.aladin.co.kr

 

관련글 더보기

댓글 영역