Rhino издевается: свойство mock для возврата значения по умолчанию (null)

Если я буду использовать динамический макет и попытаюсь использовать свойство, которое не настроено, оно просто вернет значение по умолчанию (null) для этого свойства.

Мне нужно такое же поведение в Partial Mock только для одного свойства. Мне нужно, чтобы это свойство возвращало значение null. (собственность не должна быть виртуальной)

Например:

public abstract class SomeClass
{ 
    public XmlDocument SomeProperty     
    {   
     get { return _someProperty ?? (_someProperty = SomeMethod()); } 
    //this getter should return null in my case and doesn't call SomeMethod
    }
}


[Test]
public void SomeTest()
{
    //Arrange
    var obj = MockRepository.GeneratePartialMock<SomeClass>();

    //Act
    obj.Act(); // this method will use SomeProperty

    //Assert
    ...
}

person lol    schedule 05.12.2015    source источник
comment
Почему собственность не должна быть виртуальной? свойство является синтаксическим сахаром для методов получения / установки в C # .... (просто чтобы подчеркнуть мою точку зрения; обычно DbContext свойства в EntityFramework являются виртуальными ...). Ответ на ваш вопрос: вы не можете добиться такого поведения, используя только _2 _. (Если вы не измените подпись свойства на виртуальную)   -  person Old Fox    schedule 05.12.2015
comment
Я не могу изменить свойство, потому что я покрываю старую функциональность, и будет плохой практикой изменять модификаторы доступа или другие модификаторы существующей функциональности для тестов.   -  person lol    schedule 05.12.2015
comment
Что ж, ваш последний аргумент неверен; чтобы иметь возможность использовать методы UT, код должен быть спроектирован как тестируемый (вы можете прочитать об этом где угодно в SO или просто погуглить ...). Я думаю, что диаграмма в этом ответе может вам помочь.   -  person Old Fox    schedule 05.12.2015
comment
Моки Rhino не могут имитировать невиртуальные методы или свойства, см .: stackoverflow.com/questions/342989/   -  person Amittai Shapira    schedule 06.12.2015