2010-03-17 4 views
0

WCF 서비스 계약을 구현 중입니다.외부 의존성이 포함 된 복잡한 방법에 대한 테스트 기반 개발

TDD에 따라 하드 코드 된 값을 사용하여 테스트 케이스를 전달했습니다.

그 후 나는 내 서비스 구현에 실제 논리를 적용하기 시작했습니다. 실제 로직은 3-4 외부 서비스 및 데이터베이스에 의존합니다.

내가 작성한 원래의 테스트 케이스는 어떻게해야합니까? 테스트 통과를 위해 동일하게 유지하면 여러 다른 외부 서비스를 호출해야합니다.

그래서 TDD를 사용하여 비즈니스 패브릭에 대한 테스트 케이스를 작성한 다음 나중에 외부 종속성과 관련하여 실제 로직을 추가 할 때 테스트 케이스를 작성하면 어떻게해야합니까?

답변

1

가짜 종속성을 객체에 삽입 할 수 있도록 mocking 프레임 워크 (의존성 반전 또는 팩토리 만 사용)를 활용하십시오. 그런 다음 미리 준비된 응답을 반환하거나 클래스가 의도 한대로 의존성을 활용하는지 확인할 수 있습니다.

예를 들어, 코드가 저장소를 호출하여 저장하는 경우 비즈니스 메서드 테스트에서 저장소가 실제로 영구 저장소에 저장되었다는 사실은 신경 쓰지 않고 필요할 경우에만 호출하고 일부 데이터를 반환했습니다 . 실제로 테스트 한 것은 코드가 종속성이 반환 한 결과에 반응하는 방식 또는 올바르게 활용 된 경우 - 종속성의 실제 기능이 아닌 경우입니다.

이상적으로 첫 번째 테스트는 클래스/방법의 작동 방식을 나타내야합니다. 데이터를 반환하므로 테스트가 끝나면 여전히 유효합니다.

관련 문제