궁금한 점이 있다면이 인터페이스의 모든 속성을 자동으로 구현하는 스텁을 만들 수있는 방법이 있는지, 특히 기본 형식이 아닌 경우 특히 그렇습니다. 예 :Microsoft Fakes - 자동 구현 된 하위 개체로 스텁 만들기
public interface TopInterface
{
int Counter { get; set; }
SubLevel1Interface ChildObject { get; set; }
SubLevel1Interface OtherChildObject { get; set; }
}
public interface SubLevel1Interface
{
string SomeText { get; set; }
SubLevel2Interface SomeObject { get; set; }
}
public interface SubLevel2Interface
{
DateTime dateOfMotezumaBirthday { get; set; }
}
그리고 메신저 TopInterface 클래스, 모든되지-stubed 속성의 기본 동작을 스텁 때 널 던져하는 것입니다. 내 테스트 목적을 위해 이러한 속성은 null 일 수 없습니다. 이것은 다음과 같이 간단한 코드를 작성해야만한다.
StubTopInterface someStub = new StubTopInterface
{
CounterGet =() => 15,
ChildObjectGet =() => new StubSubLevel1Interface
{
SomeTextGet =() => string.Empty,
SomeObjectGet =() => new StubSubLevel2Interface(),
},
OtherChildObjectGet =() => new StubSubLevel1Interface
{
SomeTextGet =() => "FooBaal",
SomeObjectGet =() => new StubSubLevel2Interface(),
},
};
Counter - other 객체가 null 일 수없는 속성. 따라서 다음과 같이 쓸 방법이 있다면 매우 행복 할 것입니다.
StubTopInterface someStub = new StubTopInterface
{
CounterGet =() => 15,
}
나머지 개체는 자동으로 스텁 될 것입니다. 이것을 달성 할 방법이 있습니까?
내장 된 것들을 자동으로 스텁하는 방법을 찾지 못할 것이라고 생각합니다. 리플렉션을 사용하여 값을 제공 할 수는 있지만 매우 복잡 할 수 있습니다. 더 많은 경우, 문제는 클래스가 서로에 너무 많이 의존한다는 것입니다.하지만 그렇게해야 할 수도 있습니다. – Magus