이것은 Moq에만 국한된 것이 아니라 일반적인 Mocking 프레임 워크 관련 질문입니다. "IAsset"유형의 객체에 대한 mock 객체를 만들었습니다. IAsset의 getter 인 "Info"에서 반환되는 유형을 조롱하고 싶습니다.이 추상 클래스를 Moq과 어떻게 조롱해야합니까?
var mock = new Mock<IAsset>();
mock.SetupGet(i => i.Info).Returns(//want to pass back a mocked abstract);
mock.SetupProperty(g => g.Id, Guid.NewGuid());
문제는 내가 반환 한 속성 값을 모의하는 것입니다.
mock.SetupGet(i => i.Info).Returns(//this is the type I need to mock);
이 속성에는 추상 형식이 있습니다. 이 형식은 XDocument를 확장합니다.
public abstract class SerializableNodeTree : XDocument, ISerializable{...}
그래서 .. 내가 뭘하고 싶은 것은 이것이다 :
var nodeTreeMock = new Mock<SerializableNodeTree>();
nodeTreeMock .SetupGet(d => d.Document).Returns(xdoc);
xdoc이하여 XDocument 인스턴스입니다. 이것은 XDocument.Document getter가 가상이 아니기 때문에 작동하지 않습니다. 어떤 의미가 있습니다.
필자는 SerializableNodeTree에서 파생 된 모의 코드를 작성해야합니까, 아니면이 객체를 모의 할 수있는 방법일까요?
첫 번째 제안을 사용하기로 결정하고 SerializableNodeTree의 테스트 구현을 만들었습니다. – Nick