Как издеваться над имуществом без сеттера? - PullRequest
4 голосов
/ 11 декабря 2011

Я пытаюсь смоделировать интерфейс.Свойство, которое я хочу установить "MockThisProperty", не имеет установщика.Я не могу изменить источник интерфейса.Я получаю ошибку:

Предыдущий метод 'IThirdPartyInterface.get_MockThisProperty ();'требуется возвращаемое значение или исключение для выброса.

Я пробовал DynamicMock, Strictmock, частичное макетирование и т. д.

Когда я пытаюсь SetupResult.компилировать, потому что нет установщика.

с использованием последних макетов Rhino с mstest

В недоумении вот код ...

        var stuff = _Mockery.Stub<Hashtable>();
        matchItem.Add(key, "Test"); 

        var thirdParty = _Mockery.Stub<IThirdPartyInterface>();
        SetupResult.For(thirdParty.MockThisProperty).Return(stuff);

        _Mockery.BackToRecordAll();


       //more code

        _Mockery.ReplayAll();

        Assert.IsTrue(MethodToTest(thirdParty));

        _Mockery.VerifyAll();

1 Ответ

7 голосов
/ 11 декабря 2011

Это сработало для меня:

var thirdParty = Rhino.Mocks.MockRepository.GenerateStub<IThirdPartyInterface>();
thirdParty.Stub(x => x.MockThisProperty).Return("bar");
string mockPropertyValue = thirdParty.MockThisProperty; //returns "bar"
...