Rhino Mocks: AssertNotCalled (кроме случаев, когда я загружаюсь) - PullRequest
2 голосов
/ 28 января 2012

У меня есть зависимость, которая вызывается при создании объекта, который я тестирую.Однако, это никогда не должно вызываться после этого.Как мне написать такой тест?

Я бы хотел, чтобы эта строка использовалась в качестве теста (поскольку я пытаюсь следовать стилю написания теста AAA).Однако это утверждение не будет выполнено, так как во время установки был вызван метод Publish.

Notifier.AssertWasNotCalled(Sub(n) n.Publish(Arg(Of Message).Is.Anything))

Есть ли способ "сбросить" вызовы на зависимости, которую я смоделировал?

Примечание: Я могу настроить его таким образом, чтобы проверять свойство аргумента Message на значение, которое я ожидаю после инициализации, но это делает мой тест более хрупким / хрупким, и я бы хотел его избежатьесли возможно.

_notifier.AssertWasNotCalled(
  Sub(n) n.Publish(Arg(Of Message).Matches(Function(m) m.property = "yo!")))

1 Ответ

2 голосов
/ 28 января 2012

Вот как бы я это сделал:

_notifier.AssertWasCalled(function(n) p.Publish, function(c) c.Repeat.Once().IgnoreArguments());

Поскольку это будет гарантировать, что он вызывается только один раз, что будет вызвано вашим кодом установки, как вы указали.

...