김동형수 개발기

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

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

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

김동형수 2022. 9. 28. 01:39

20장 뒷정리하기

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

 

tearDown() 메서드는 외부에서 주입받은 자원을 테스트에 이용한 뒤 반환하는 목적의 메서드이다.

메서드 호출 순서를 확인하기 위해 로깅 작업을 추가한다.

 

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

 

setUp, testMethod 에 각각 log 변수에 append하는 기능을 추가했다.

assert에서 setUp -> testMethod 순으로 호출된 뒤 log 변수에 쌓이는 문자열을 비교했다.

여러곳에서 사용되는 WasRun("testMethod")가 리팩토링을 통해 테스트 메서드가 2개에서 1개로 정리되면서 setUp내에서 빠지게 되고 로컬 변수로 선언하도록 되돌렸다.

 

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

 

테스트에서 tearDown 로그가 추가된 문자열을 검증한다.

TestCase 클래스의 run 메서드에서 tearDown을 추가하고 WasRun에서 구현을 했지만 상위 클래스에서 tearDown 메서드가 없기 때문에 pass(아무것도 하지 않는 메서드 바디 키워드)로 된 tearDown을 TestCase에 추가한다.

 

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

 

정리

  • 플래그에서 로그로 테스트 전략을 구조 조정했다.
  • 새로운 로그 기능을 이용하여 tearDown()을 테스트하고 구현했다.
  • 문제를 발견했는데 뒤로 돌아가는 대신 과감히 수정했다.

 

 

Comments