테스트를 진행하다 보면 DB에 특정 데이터가 존재해야 하는 경우가 종종 있습니다.
예를 들어, 특정 사이트에 가입하기 위해서는 가입 가능 대상자로 포함되어 있어야만 하는 경우가 있죠.
그런데 시간이 지나면 해당 테이블에 정보가 변경되면서 테스트 계정들이 가입할 수 없는 경우가 발생하기도 합니다.
이런 경우처럼 테스트를 위해 데이터를 setup해주는 과정을 간단히 하기 위해서 FitNesse + DbFit을 사용해보려고 시도해보았습니다.
FitNesse를 확장한 NTAF, 그리고 DbFit 을 이용해서 진행해보려고 했는데 select한 결과를 parameter로 받아서
처리하려고 했더니 다음과 같은 에러가 발생하면서 parameter를 저장하지 못했습니다.
java.lang.NoSuchMethodError: fit.Fixture.setSymbol (Ljava/lang/String;Ljava/lang/Object;)V
FitNesse에 포함된 fit에 기본적으로 제공되는 setSymbol 함수가 없다니??
뭔가가 이상해서 한참 고생하다가 eclipse를 통한 remote debugging까지 해서 원인을 찾아냈습니다.
그 원인은 바로 FitNesse를 확장한 NTAF가 실질적으로는 wrapper가 아닌 fit 소스 자체를 건드려서 확장하는 방식을 사용했기 때문이었습니다.
original source를 수정하면서 setSymbol, getSymbol 함수가 빠졌고, 결국 NTAF를 이용하는 경우에는 DbFit을 사용할 수 없게 된거죠.
결국 NTAF에 포함된 FitNesse가 아닌 original FitNesse 상에서 DbFit을 이용하는 것으로 했더니 너무나도 쉽게 처리가 되었습니다.
※DbFit이나 다른 Fixture code들을 FitNesse 상에서 debugging하는 방법에 대해서는 다음번에 올리도록 하겠습니다.
'FitNesse' 카테고리의 다른 글
eclipse를 통한 FitNesse 디버깅 - Remote Debugging (0) | 2009.12.18 |
---|