RhinoMocks: AssertWasCalled не работает на заглушке - PullRequest
2 голосов
/ 02 января 2012

Я пытаюсь утверждать с RhinoMocks, что был вызван определенный установщик свойства.Но это не работает должным образом.

Следующий упрощенный пример иллюстрирует проблему.

Рассмотрим этот интерфейс:

public interface IMyInterface
{
    string SomeProperty { get; set; }
}

А теперь рассмотрим следующий код:

var mock = MockRepository.GenerateStub<IMyInterface>();
mock.SomeProperty = "abc";

mock.AssertWasCalled(x => x.SomeProperty = Arg<string>.Is.Anything);

Я ожидал, что утверждение в последней строке пройдет без проблем.Однако он выдает ExpectationViolationException с этим сообщением:

"IMyInterface.set_SomeProperty (что угодно); Ожидаемый # 1, фактический # 0."

Я могуне понимаю, почему это должно произойти.Может кто-нибудь, пожалуйста, помогите?

1 Ответ

7 голосов
/ 02 января 2012

Объект, возвращаемый GenerateStub<T>, не записывает вызовы свойств и методов.Если вы хотите подтвердить, были ли вызваны сеттеры, геттеры или методы, используйте GenerateMock<T>.

// Replace
var mock = MockRepository.GenerateStub<IMyInterface>();

// with
var mock = MockRepository.GenerateMock<IMyInterface>();

// and everything should work again.
...