김동형수 개발기

테스트 주도 개발 - 2부 18장 본문

책 스터디/[완료] 테스트 주도 개발

테스트 주도 개발 - 2부 18장

김동형수 2022. 9. 28. 00:17

2부 xUnit 예시

xUnit 아키텍처는 파이썬에서 매끄럽게 도출되기 때문에 자바에서 파이썬으로 언어를 바꾼다.

2부가 끝나면 파이썬에 대해 개론적으로 이해하고, 자신만의 테스트 프레임워크를 작성할 수 있고 좀 더 교묘한 TDD의 예를 알게 될 것이다.

 

18장 xUnit으로 가는 첫 걸음

 

테스트 메서드 호출하기
먼저 setUp 호출하기
나중에 tearDown 호출하기
테스트 메서드가 실패하더라도 tearDown 호출하기
여러 개의 테스트 실행하기
수집된 결과를 출력하기

첫 번째 원시 테스트에는 테스트 메서드가 호출되면 true, 그렇지 않으면 false를 반환하는 프로그램이 필요하다.
클래스 이름과 플래그 명은 각각 WasRun, wasRun 으로 한다.

 

테스트 코드를 작성하고 실행이 되게끔 WasRun 클래스를 작성한다.

testMethod 호출하기 전에는 파이썬에서 false, Null, nil 의 의미를 가지는 None을 출력하고 호출 이후 wasRun에 1을 대입한다.

그리고 테스트 코드에서 testMethod를 직접 호출하다가 run 메서드를 추가한 뒤 테스트 코드에서 호출한다.

testMethod를 run 메서드에서 호출한다.

 

getattr 메서드를 사용해서 문자열로 메서드를 얻을 수 있다. (java에 reflection과 유사해보인다.)

 

WasRun의 name 필드와 run 메서드를 상위 클래스로 올린다.

그리고 기존에 클래스 없이 동작하던 코드를 TestCaseTest 클래스를 생성한 뒤 메서드를 호출한다.

 

테스트 메서드 호출하기
먼저 setUp 호출하기
나중에 tearDown 호출하기
테스트 메서드가 실패하더라도 tearDown 호출하기
여러 개의 테스트 실행하기
수집된 결과를 출력하기

 

정리

  • 자기 과신에 차서 몇 번의 잘못된 출발을 한 후, 아주 자그마한 단계로 시작하는 법을 알아냈다.
  • 일단 하드코딩을 한 다음에 상수를 변수로 대체하여 일반성을 이끌어 내는 방식으로 기능을 구현했다.
  • 플러거블 셀렉터를 사용했다. 플로거블 셀렉터는 정적 코드 분석을 어렵게 만들기 때문에 앞으로 최소 4개월 안에는 사용하지 않기로 약속하자.
  • 테스트 프레임워크를 작은 단계로만 부트스트랩했다.

참조

https://straw961030.tistory.com/350
Comments