В настоящее время у меня есть тест, который тестирует ведущего, которого я имею в модели MVP. На моем презентаторе у меня есть свойство, которое вызовет мой взгляд, который в моем тесте издевается. В инициализации моего теста, после того, как я установил мой просмотр в презентаторе, чтобы быть издеваемым представлением, я установил свое свойство в Presenter, которое вызовет этот метод.Использование Rhino Mocks, почему вызывает издевательство над свойством во время инициализации теста return Ожидаемый вызов # 1, Фактический вызов # 0?
В моем тесте я не имею Expect.Call для метода я взываю, но когда я бег я получаю эту Rhino макета исключение:
Rhino.Mocks.Exceptions.ExpectationViolationException: IView.MethodToInvoke(); Ожидаемый # 1, фактический № 0 ..
Из того, что я понимаю с носорогами Rhino, до тех пор, пока я вызываю Mock вне ожидающего блока, он не должен записывать это. Я бы предположил, что тест пройдет. Есть ли причина, по которой она не проходит?
Ниже приведен код для показа моей установки.
public class Presenter
{
public IView View;
public Presenter(IView view)
{
View = view
}
private int _property;
public int Property
get { return _property;}
set
{
_property = value;
View.MethodToInvoke();
}
}
... Тест-код Ниже ...
[TestInitialize]
public void Initilize()
{
_mocks = new MockRepository();
_view = _mocks.StrictMock<IView>();
_presenter = new Presenter(_view);
_presenter.Property = 1;
}
[TestMethod]
public void Test()
{
Rhino.Mocks.With.Mocks(_mocks).Expecting(delegate
{
}).Verify(delegate
{
_presenter.SomeOtherMethod();
});
}
Опять же, вы уверены, вам нужно строгое издевательство? Ваш сценарий больше похож на обычный макет, который не заставляет вас указывать все ожидания. И если вы используете AAA, гораздо проще его закодировать. –