저는 조롱하기가 매우 쉽습니다. 그래서 이것은 아직 익숙하지 않은 것일 수도 있지만, 어디서나 좋은 예를 찾을 수는 없습니다.Rhino에서 추상 클래스의 기본 동작 모의
기본적으로 내 추상 클래스에서 상속하는 모든 클래스는 생성자에서 컬렉션을 인스턴스화합니다. 다음은 추상 클래스입니다.
public abstract class DataCollectionWorkflow : SequentialWorkflowActivity
{
private readonly DataSet _output = new DataSet();
private List<DataCollectionParameter> _params = null;
public DataCollectionWorkflow()
{
_params = new List<DataCollectionParameter>();
}
public virtual IList<DataCollectionParameter> Parameters
{
get { return _params; }
set { _params = (List<DataCollectionParameter>)value; }
}
}
Rhino를 어떻게 조롱합니까? GenerateMock<DataCollectionWorkflow>
(또는 스텁)을 실행하면 생성자가 실행되고 모의의 비공개 필드 인 "_params
"이 초기화되지만 모의의 "Parameters
"속성은 단순히 null입니다.
분명히 생성 된 mock 하위 클래스가 속성 구현을 재정의하고 있습니다. 매개 변수 속성을 다시 구현하지 못하게하는 방법이 있습니까?
감사합니다.
필드는 가상 일 수 없습니다. 문제는 매개 변수 속성이 필드가 아닌 재정의됩니다. 필드가 잘 초기화되어 ... 더 이상 모의 객체의 속성에 연결되지 않습니다. – womp