2012-04-19 2 views
1

하나의 데이터 개체를 다른 개체로 변환해야하는 여러 위치가 있습니다. 예를 들어 웹 서비스 또는 REST 서비스에서 지속 가능한 객체로 들어오는 데이터.단위 테스트 개체/모델 변환기

들어오는 모든 데이터가 테스트 내부의 변환기 논리를 복사하지 않고 "나가는"개체의 올바른 위치에 채워지는 단위 테스트 방법이 있습니까?

필드가 모두 동일한라고하는 경우

, 하나는 반사가 몇 가지 작업을 할 수있는, 모험을 좋아한다 ..하지만

입학 시험은 잡을 수 없습니다 .. 그 길 아래로가는 기분이 안 name과 firstname을 가진 Person이 어떤 copy + paste 실수로 인해 name == firstname 인 Person으로 변환되는 경우 버그.

그래서 지금은 개체/모델 변환 테스트를 건너 뛰고 내 변환기를 실제로 살펴 봅니다.

다르게 수행하는 방법에 대한 아이디어가 있습니까?

+0

http://stackoverflow.com/questions/2874296/reflection-in-unit-tests -for-checking-code-coverage/2904148 # 2904148 – ewernli

+0

다소 관련이 없지만 만족스런 대답 – Pete

답변

1

곱셈이 작동하는지 테스트해야하는 경우 곱셈 논리를 복제하면 안됩니다. 당신이 알고있는 테스트 데이터를 정의하고, 그 곱셈이 괜찮은지 테스트하십시오.

assert(4*5, 4*5) 

assert(4*5, 20) 

아니라 여기에 테스트 데이터 4, 5, 20하고, 그 승산이다 묶어 그 로직을 테스트한다. 귀하의 경우에도 동일한 원칙이 적용됩니다. 테스트 데이터를 정의하고 변환이 올바른 결과를 산출하는지 테스트하십시오.

(당신이 지적하는 것처럼, 등 반사와 일반적인 테스트 themsleves을 만들고, 테스트의 목적을 패배.)

관련
+0

정말 유일한 방법은 결과 객체 필드를 소스 객체에 대해 필드로 검사하는 것입니다. 나는 그것이 두려워했다. .. – Pete

+0

~ 100 개의 필드를 갖는 텍스트로 변환하는 경우? – magulla