저는 Moq을 사용하고 사랑해 왔지만 일부 리거 코드를 조롱하는 문제를 만났습니다 (전에 리팩터링하려고 시도하기 전에)Moq Mock 구현을 복사 할 수 있습니까?
내가 정말로하고 싶은 것은 두 개의 별도 모의가 있습니다. 아래 샘플처럼 약간 다른 구현.
Mock<IFoo> fooMock = new Mock<IFoo>();
fooMock.SetupGet(f => f.bar).Returns(7);
fooMock.SetupGet(f => f.bar2).Returns(3);
Mock<IFoo> fooMockClone = new Mock<IFoo>(fooMock.Behavior);
fooMockClone.SetupGet(f => f.bar).Returns(9);
Debug.Assert(7 == fooMock.Object.bar);
Debug.Assert(9 == fooMockClone.Object.bar);
Debug.Assert(3 == fooMockClone.Object.bar2);
Debug.Assert(3 == fooMock.Object.bar2);
이것은 간단한 예제이지만 실제 코드는 수십 가지 메소드가있는 객체이며 두 버전에 약간 다른 구현이 필요합니다.
감사합니다.
귀하의 질문 혼란 보인다 - 두 번째 fooMock 설정 및 두 번째 주장와 복사 - 붙여 넣기 "whoopsie"을 있었나요? –
당신은 절대적으로 옳습니다. 나는 그랬다. 결정된. 감사합니다 :) –
잠깐, 당신이 액세스 할 때마다 그 값이 바뀌는 하나의 모의 객체가 필요합니까? –