'테스트 워크샵'에 해당되는 글 2

  1. 2010.11.14 테스트 시작하기, 좋은 시작~
  2. 2009.09.22 테스트 코드 작성을 위한 Workshop

테스트 시작하기, 좋은 시작~

H가 우리 팀으로 합류했다.
계속 테스트에 대한 이야기를 했더니 이번 수정사항에 대해서 테스트 코드를 짜왔다.
오호...

- 기존 소스

1. 별도의 main 메서드를 이용했다.
그래, 방법이 중요한게 아니야.

2. 테스트를 해야 하는 부분이 해당 업무의 끝부분이다.
데이터베이스 접근도 많이 하고 각종 설정이 필요하다.
그래서 테스트하려고 하는 부분의 소스 코드 조각을 따로 떼어서 테스트 코드에 복사했다.
필요한 부분만 복사해서 테스트한거는 나름대로 고민한 끝에 나온 방법이네.
그런데 복사한 소스는 중복이 되고, 나중에 업무 로직이 변경되어서 소스가 변경되었는데 테스트 코드는 변경되지 않을 수도 있잖아.

3. 테스트하려는 코드내에서 데이터베이스를 접근하는 코드가 있다.
데이터베이스를 접근하는 코드는 위와 같이 해서 제거했는데 이 부분은 뺄 수가 없다.
그래서 별도의 메서드로 만들어서 테스트 데이터를 리턴하게 만들었다.
좋은 시도다.
ERPDAO가 외부에서 변경이 가능했다면 더 좋았을텐데.
아니면 이 부분도 별도의 메서드로 빼서 구현해 놓으면 교체가 쉬울텐데.
ERPDAO처럼 우리가 데이터를 마음대로 변경할 수 없는 경우 테스트하기가 곤란하다.
지금 테스트를 통과하는 데이터가 내일은 없을지도 모른다.
이런 곳은 Mock이 좋겠다. 아니면 동의어를 사용해서 로컬에 테이블을 만든다.

- H가 작성한 테스트 코드
- 좀 더 개선한다면

테스트 코드 작성을 위한 Workshop

캬~ 제목 좋다.
나도 배우면서 진행하고자 한다.
서로들 많은 영감을 얻었으면 한다.

W는 어제 과제를 내줬다.
일단 테스트를 하는 코드를 작성해보라고.
날짜형식에 관련된 유틸리티 메서드를 테스트하고 결과는 표준출력에 출력했다.
그리고 JUnit을 써보겠다고 자료를 출력하고 있다.[각주:1]
DAO를 테스트하는 코드를 작성해보라고 했음.

H는 테스트 코드를 작성했는데 방향을 조금 잘못 잡은듯 하다.
전체적인 개념을 설명해 줬는데 의외로 현재 DAO의 문제점을 빨리 파악했다.
그러나 어제 알려준 인터페이스에 대해 너무 집착을 한다.

아뭏튼 시작이 좋다.
나도 열심히 공부를 해야 하지만 중간중간 코칭을 제대로 하는게 중요할 듯 하다.
어차피 방향만 알려 줄뿐 나머지는 자신해야 하기 때문에.
  1. 좋은 현상이다. 결과를 떠나서 능동적으로 행동하고 있다. [본문으로]