저는 많은 프로젝트에서 이와 비슷한 것을했습니다.
스텁 된 웹 서비스를 만들고 싶지 않습니다. 그것은 단지 당신이 필요로하지 않는 의존성을 추가하는 것입니다. 내가 한 일은 웹 서비스 API를 모방 한 인터페이스를 만드는 것이었다. 그런 다음 라이브 시스템에서 웹 서비스를 호출 할 프록시 클래스를 작성했습니다. 테스트를 위해 RhinoMock을 사용하여 테스트하고 싶은 결과를 반환하는 조롱 된 클래스를 만들었습니다. 라이브 시스템에서는 불가능했던 모든 종류의 '예상치 못한'동작을 생성 할 수 있기 때문에 이것은 매우 유용했습니다. 이 같은
public interface IServiceFacade {
string Assignments();
}
public class ServiceFacade : IServiceFacade {
private readonly Service _service;
public ServiceFacade(Service service) {
_service = service;
}
public string Assignments() {
return _service.Assignments();
}
}
그럼 내 테스트 코드가 포함 된 것들 :이 매우 유용하다고
var serviceFacade = MockRepository.GenerateMock<IServiceFacade>();
serviceFacade.Stub(sf => sf.Assignments()).Return("BLAH BLAH BLAH");
또는
serviceFacade.Stub(sf => sf.Assignments()).Return(null);
또는
serviceFacade.Stub(sf => sf.Assignments()).Throw(new Exception("Some exception"));
.
멋진 솔루션이지만,이 경우 꼭 필요한 것은 아니라고 생각합니다. 그래도 알기에 유용합니다 (따라서 upvote). –