단위 테스트의 경우 NUnit 2.6 및 Moq 4.0을 사용하고 있습니다. Moq의 프록시 객체가 실제 구현 (아마도 의도적으로) 메소드 호출을 중계하지 않는 가상 멤버에 관한 특별한 경우가 있습니다. I 클래스 ...Moq의 가상 멤버 조롱
public class MyClass {
protected virtual void A() {
/* ... */
}
protected virtual void B(...) {
/* ... */
}
}
했다 ... 그리고 예를 들어, 만약 내가 사용 ... 내 테스트 픽스처에
var mock = new Mock<MyClass>();
mock.Protected().Setup("A").Callback(SomeSortOfCallback);
을 GetSomethingElse
의 A()
메소드를 오버라이드 (override) 할 MOQ를 사용 모의의 A
방법은 훌륭하게 작동합니다. 그러나 메서드에서 아무 것도 모호하지 않은 메서드 B
을 호출하면 실제 구현이 MyClass
에 있더라도이 메서드는 아무 것도 수행하지 않고 기본값을 반환합니다.
이 문제를 해결할 방법이 있습니까? Moq를 잘못 사용하고 있습니까? 사전에
감사합니다,
매니
다른 방법을 조롱하고 싶은가요? –
@LouisRhys 분명히 이것이 간섭하지 않는다는 것을 확실히 명심하십시오 - 당신이 명시 적으로 뭔가를 모의한다면'CallBase' 설정은 절대로 나오지 않습니다. –