Junit 4 시작하기

2010-08-10

며칠 전에 TDD를 시작 하겠다고 한 바, 시작은 하는데, 기왕 하는 거 깔끔하게 정리도 해 보자는 생각에 포스팅도 하기로 했다. 더 자세한 내용은 이 기사를 참고 또한 이걸 왜 해야 하는지에 대한 것은 여기를 참고

일단 새 프로젝트를 하나 만들어 보자. 당연히 Java 프로젝트로 만든다.

다음은 테스트할 내용을 적는다. 일단 첫 테스트이고, 테스트 내용보다 테스트 방법-정확히는 jUnit4의 사용법-을 익히는 게 중요하므로, 입력이 뭐가 되든 값이 26이 나오는 데 집중한다. 어쨌든 처음 할 일은 결과 값이 26이 나오는지를 검사하는 테스트를 만드는 일이다.

자 테스트를 만들어 봅시다. 이렇게 하면 myTest라는 클래스가 추가된다. 그럼 이제 코드를 짜 봅시다. 중요한 점은 2가지.

  1. org.junit.Test를 import 한다.
  2. @Test Annotation을 사용한다.
참 쉽죠? 지금 보이는 빨간 X나 노란전구에 쫄지 말자. Ctrl + 1로 처리할 수 있으니까. 계속 써 봅시다. 일단 getArea라는 메소드를 맘대로 적고, 거기서 Ctrl + 1을 누른다. 간단히 새 메소드(비어있)가 생기고(이거 여기다 만들어도 되나 하는 걱정은 잠시 잊자.) 아래쪽 task 에 뭐가 하나 생겼다. 다음 단계는...
  1. 새로 만든 메소드가 26을 제대로 리턴하는지 확인한다.
  2. 그렇지 않다면 새로만든 메소드가 원하는 동작을 하게 만든다.
1번은 위에 assertEquals메소드로 처리한다. 그 다음에 테스트를 돌려본다. 이렇게 해서 Run As JUnit Test 하면... 테스트는 깔끔하게 실패할 것이다. 빨간색에 겁먹지 말자. 이제 2번을 할 차례다. 2번은 아래쪽 task에서 클릭해서 들어가도 되고, 바로 찾아 들어가도 된다. 일단 리턴 타입은 int로 하고 return 26; 만 적어주자. 이렇게 하면 된다. 그리고 다시 junit test를 돌리면... 성공!

이제

  1. 메소드가 뭘 해야 하는지 적고,
  2. 거기에 대한 테스트를 추가하고,
  3. 테스트에 통과할 때까지 메소드를 고친다.
이런 식으로 프로그램이 완성될 때까지 반복하면 된다.
적재적소 jUnit4 annotations