대범하게

[클린코드] 35일차/36일차 - JUnit 들여다보기 본문

알아두면쓸데있는신기한잡학사전/독서일지

[클린코드] 35일차/36일차 - JUnit 들여다보기

대범하게 2023. 12. 12. 00:28
반응형

[클린코드] 35일차/36일차 - JUnit 들여다보기

클린코드 35일차 (p. 324 ~ 332 (13장) )

15장 JUnit 들여다보기

JUnit은 켄트 벡과 에릭 감마가 비행기를 타고 가다 만들었다고 한다..!

 

ComparisonCompacterTest.java 라는 모듈을 살펴보자

 

문자열 비교 오류를 파악할 때 유용한 코드이다.

 

예를 들어, ABCDE와 ABXDE를 받으면 <…B[X]D…>를 반환한다.

package junit.framework;

public class ComparisonCompactor {

	private static final String ELLIPSIS = "...";
	private static final String DELTA_END = "]";
	private static final String DELTA_START = "[";

	private int fContextLength;
	private String fExpected;
	private String fActual;
	private int fPrefix;
	private int fSuffix;

...
}

 

긴 표현식 몇 개와 f로 시작하는 것이 보기 싫다.. 그리고 변수 이름에 범위를 명시할 필요가 없으므로 중복되는 정보는 삭제한다.

private int contextLength;
private String expected;
private String actual;
private int prefix;
private int suffix

 

 

JUnit 프레임워크 코드 평가하기

 

의도를 명확히 표현하려면 조건문을 캡슐화해야 한다. 즉, 조건문을 메서드로 뽑아내 적절한 이름을 붙인다.

 

부정문은 긍정문보다 이해하기 약간 더 어렵다. 그러므로 if를 긍정으로 만든다.

 

함수 이름을 잘 짓는다. 인수까지 고려한다.

 

모듈은 일련의 분석 함수와 일련의 조합 함수로 나뉜다.

 

전체 함수는 위상적으로 정렬한다. 각 함수가 사용된 직후에 정의된다. 분석 함수가 먼저 나오고 조합 함수가 그 뒤를 이어서 나온다.

 

 

결론

우리는 보이스카우트 규칙을 지켰다.
모듈은 처음보다 더욱 깨끗해졌으며, 세상에 개선이 불필요한 모듈은 없다.
코드를 처음보다 조금 더 깨끗하게 만드는 책임은 우리 모두에게 있다.

Comments