2011-12-29 9 views
1

WCFMock을 사용하여 웹 서비스에서 WebOperationContext를 조롱했습니다. 유일한 사용법은 WebOperationContext.Current.OutgoingResponse.Headers 컬렉션에 사용자 지정 HTTP 헤더를 추가하는 것입니다. Moq를 사용하여이를 확인할 수 없습니다. 이미 시도한 내용 :WebOperationContext Mocking

  • Add 메서드가 호출되는지 확인하십시오. 추가가 가상이 아니기 때문에 실패합니다.
  • MockedWebOperationContext.Current에서 직접 헤더에 액세스 해보십시오. 숫자가 항상 0입니다.

내 단위 테스트 케이스에서 맞춤 헤더가 추가되었는지 어떻게 확인할 수 있습니까?

답변

4

알아 냈어. 후손을위한 솔루션입니다.

IWebOperationContext에 대한 "moq mock"을 만들면이 예제에서는 DefaultValue = DefaultValue.Mock 속성을 설정하는 것이 좋습니다. 이것은 HttpHeaders 콜렉션을 포함한 모든 의존성을 조롱 할 것이다. 나는 이것을 건너 뛰어 OutgoingWebResponseContextWebHeaderCollection으로 돌려 보았다. 내 테스트 케이스의 경우이 컬렉션에 대해 간단하게 주장합니다.

+0

나는 당신이 가지고있는이 문제에 아주 가깝게 뭔가를보고 있는데, 당신의 코드를 게시 할 수있는 기회는 무엇입니까? 여기에 몇 가지 개념적 요점이 누락되어있어 크게 도움이 될 것입니다. – BryanGrimes

+0

2009 년 이후 새 버전이 없어도이 프로젝트가 계속 작동합니다. – PositiveGuy