반환 유형이 인터페이스 인 경우 Rhino Mock (v3.6)에서 프록시 유형이 생성되는 이유 이 명시 적으로 반환 값을 지정하지 않으면 (항상 반환 값을 지정해야하지만 다른 발행물)?Rhino Mock의 기본 반환 유형은 무엇입니까?
많은 웹 기사와 심지어 일부 게시물 RhinoMock : Mocks Vs StrictMocks Vs DynamicMocks은 모의 결과가 기본 유형을 반환 할 것이라고 말하면 default(T)
이라고 가정합니다. 나는이 행동을 보지 않을 것이다 (아래 참조). 동작을 지정하는 Rhino Mocks Documentation에서 아무것도 찾을 수 없습니다.
반환 유형으로 필수 유형과 클래스를 테스트했으며 (아래와 비슷 함)이 테스트는 모두 예외를 throw합니다. 시도 할 때 반환 값 또는 예외가 필요합니다. 내 Act 코드에서 메소드 호출. 이것은 마음에 들지 않습니다. 그 명백한 것은 틀린 것입니다. Rhino는 '창의적이지 않습니다.'
// Arrange
IFoo strictMockInstance = MockRepository.GenerateStrictMock<IFoo>();
IFoo dynamicMockInstance = MockRepository.GenerateMock<IFoo>();
strictMockInstance.Expect(call => call.Bar());
strictMockInstance.Replay();
dynamicMockInstance.Expect(call => call.Bar());
dynamicMockInstance.Replay();
// Act
IResult smResult = strictMockInstance.Bar();
IResult dmResult = dynamicMockInstance.Bar();
// Assert
Assert.IsNull(smResult); // none of these results are null, both are proxy instances
Assert.IsNull(dmResult);
// ....
public interface IFoo
{
IResult Bar();
}
public interface IResult { }
Offtopic, Expect()/Call()은 소스 코드 주석에서 언급 한 AAA 구문이 아니며, AssertWasCalled() '메소드 대신 – sll