2010-02-12 6 views
1

TDD에 착수하고 있습니다. 서비스 참조를 추가하여 프로젝트를 테스트하는 것이 좋지 않은지 또는 WCF 서비스에 의존하는 테스트에서 위조 된 서비스를 조롱하는 경우를 알고 싶습니다.WCF + TDD : 테스트 프로젝트에 서비스 참조를 추가하는 중 : 불량입니까?

+0

자세한 내용이있는 문서가 있습니까? –

+0

나는 그것을 얻지 않는다. TDD 서비스를 원하십니까? 이것은 TDD가 아니므로 실제 서비스 구현 (서비스 클래스!)을 만드는 TDD 메소드를 작성해야합니다. – PositiveGuy

+0

예, 항상 웹 서비스를 조롱하고 프록시 참조를 사용하지 않아야합니다. – PositiveGuy

답변

2

예 단위 테스트 프로젝트에 서비스 참조를 추가하는 것은 좋지 않습니다. 생성 된 서비스 계약 인터페이스를 사용하여 테스트에서 실제 WCF 서비스 동작을 조롱 할 수 있습니다.

+1

또한 WCF 배관을 테스트하는 경우 테스트 프레임 워크 스레드를 호스트 (MSTEST 또는 기타)로 사용할 수 있습니다. 이것은 IIS와 같은 것을 호스트로 사용하지 않는다고 가정합니다. –

0

서비스 참조를 사용하는 대신 서비스 계약을 사용하여 ChannelFactory를 조롱 할 수 있습니다.

+0

TDD 근처에서이게 뭐야? TDD는 존재하지 않는 서비스에 대해 먼저 테스트를 작성하고 실패한 테스트를 작성할 때 서비스를 구현한다는 것을 의미합니다. – PositiveGuy

+0

내 문장의 키워드가 모의라고 생각합니다. 서비스가 구현하는 계약서를 갖게 될 것이므로 조롱 프레임 워크 (MOQ 등)를 사용하여 테스트를 수행 할 대상을 부여하십시오. 여기에 언급 된 것과 같은 http://fczaja.blogspot.co.uk/2012/10/mocking-wcf-client-with-moq.html – Rus

1

서비스를 참조하는 것이 좋지 않은 경우 게이트웨이 패턴을 구현하는 것이 좋습니다. IMyFooServiceGateway를 추가 추상화 레이어로 사용합니다. 이 방법을 사용하면 앱을 좀 더 느슨하게 결합하고 추가 테스트 가능성을 얻을 수 있습니다 (테스트 프로젝트에서 IMyFooServiceGateway가 포함 된 분리 어셈블리를 참조하고 IMyFooServiceGateway를 구현하는 모의 객체를 생성하거나 Rhino Mock과 같은 모의 프레임 워크 사용 당신을 위해 하나를 만들 수 있습니다.

0

을 대상 시험을위한 프로젝트가 서비스 참조가있는 경우 테스트 프로젝트에 추가 서비스 참조를 추가 할 필요가 없습니다.

를 서비스 참조가 추가되면 프로젝트에 일반적으로 생성 된 코드에는 서비스에 공개적으로 액세스 할 수있는 인터페이스가 포함되어 있으므로 테스트 프로젝트는이 인터페이스를보기 위해 대상 프로젝트를 참조하기 만하면됩니다.이 인터페이스는 사용자의 조롱 선택의 라이브러리 또는 수동으로 조롱.

생성 된 인터페이스가 인터페이스의 일반적인 "IFoo"명명 규칙을 따르지 않아도되므로주의해야합니다. 즉각적인 것은 아닙니다.

관련 문제