몇 가지 단위 테스트를 작성 중이며 RestSharp를 조롱하여 다양한 HTTP 요청을 작성할 수 있기를 원합니다.또 다른 모의에서 Moq 인스턴스 반환하기
현재 Restsharp에 기반한 3 개의 인터페이스를 사용하고 있습니다. IRestClient
, IRestRequest
및
나는 그것이 위조를 통해 예측 가능한 결과를 반환하는 것입니다 이해하고, 내가 MOQ 및 Ninject에 통해 이에 대한 모의를 구성에 문제가 있어요으로 조롱의 전제 IRestResponse
.
그 자체로 커널에서 다음과 같은 검색 결과를 얻었습니다.
//Create RESTful interface ecosystem (RestRequest => RestClient => RestResponse)
var clientMock = _kernel.GetMock<IRestClient>();
var requestMock = _kernel.GetMock<IRestRequest>();
var responseMock = _kernel.GetMock<IRestResponse>();
나는 기본적으로 내가 clientMock.Execute(IRestRequest)
방법을 실행할 때마다 responseMock
를 반환해야합니다.
이 코드에서 responseMock의 반환을 조롱 할 수 없기 때문에 이것이 올바른 방법일까요?
clientMock.Setup(f => f.Execute(It.IsAny<IRestRequest>())).Returns(responseMock);
: 당신이 유형()'로 대체했습니다. 질문에서 이것을 제거하고 응답에 대한 수정을 제안했습니다. –
IRestResponse
의 객체를 반환 할 때문에,하지Mock<IRestResponse>
입력T
의 인스턴스를 얻기 위해Mock<T>.Object
속성을 사용하여 메서드를 제네릭 태그 (예 :'Returns이것은 내 인스턴스에서 작동하지 않습니다. http://stackoverflow.com/questions/38244204/return-a-mock-from-a-mocked-method –