메서드를 테스트하려고합니다.테스트를 위해 무시합니다
using(proxy = new Proxy())
{
proxy.CallService();
}
내가 (TypeMock 사용) 하지만 때문에의 오류가 가짜 객체와 프록시를 교환 : 그 방법 (전화 서비스)에서 메서드 호출이 같은 코드 모양이 있음을 ensrur 할 블록의 끝에 배치 된 가짜 오브젝트. "사용"블록을 제거하고 싶지 않습니다. 감사합니다.
메서드를 테스트하려고합니다.테스트를 위해 무시합니다
using(proxy = new Proxy())
{
proxy.CallService();
}
내가 (TypeMock 사용) 하지만 때문에의 오류가 가짜 객체와 프록시를 교환 : 그 방법 (전화 서비스)에서 메서드 호출이 같은 코드 모양이 있음을 ensrur 할 블록의 끝에 배치 된 가짜 오브젝트. "사용"블록을 제거하고 싶지 않습니다. 감사합니다.
면책 조항 : 나는 Typemock
에서 일을 당신이 당신의 가짜 객체를 생성 할 때 Members.ReturnRecursiveFakes에게 를 사용할 수있는 정렬 법 어설 API를 (사용하는 경우 참고 : 이것은 버전 5.2.0의 기본값입니다. 이렇게하면 Dispose 메서드도 자동으로 가짜입니다.
var fake = Isolate.Fake.Instance<Proxy>(Members.ReturnRecursiveFakes);
Isolate.WhenCalled(() => fake.CallService()).IgnoreCall();
Isolate.Swap.NextInstance<Proxy>().With(fake);
UnderTest classUnderTest = new ClassUnderTest();
classUnderTest.MethodUnderTest(); // assuming the Proxy instance is used here.
Isolate.Verify.WasCalledWithAnyArguments(()=>fake.CallService());
나는 존 소총 내가 Dispose 메서드를 호출 할 수 있도록하는 별도의 시험을 만들 것이라고 말에 추가 할 :
그래서 테스트는 다음과 같이 될 것입니다.
각 테스트 방법에서 한 가지를 주장하는 것이 좋은 습관이라고 생각합니다. 테스트가 끝나면 즉시 이유를 알 수 있습니다.
모의 개체도 삭제 될 것으로 예상합니다. (TypeMock은 모르지만 다른 조롱하는 프레임 워크에서는 "레코드"단계에서 직접 Dispose
을 호출하는 경우가 될 것입니다.) 실제로, 나는 테스트가 잘못되어 있다고 말할 수 있습니다. 프록시 은이 처리되고 있음을 확인하고 싶습니다.
Dispose()
을 호출하기 위해 Proxy 모의을 지시하십시오. 당신이 반사 모의 객체를 사용하는 경우 당신은 자연 모의 객체가 사용하는 블록에 Dispose()
에 전화를 걸이
var proxyMock = MockManager.Mock(typeof(Proxy));
// set up regular calls to proxy, e.g.
proxyMock.ExpectCall("CallService");
proxyMock.ExpectCall("Dispose");
같은 것을 할 필요가있다.
확인 가짜 객체는 IDisposable을 구현 :
class FakeObject : IDisposable
{
public void Dispose() {}
}
OP는 TypeMock을 사용하기 때문에 가짜 프록시 클래스가 명시 적으로 없습니다. –