Как я могу убедиться, что этот метод НЕ был вызван в Moq ?
Есть ли что-то вроде AssertWasNotCalled?
ОБНОВЛЕНИЕ: Начиная с версии 3.0, можно использовать новый синтаксис:
mock.Verify(foo => foo.Execute("ping"), Times.Never());
ОБНОВЛЕНИЕ : начиная с версии 3, проверьте обновление на вопрос выше или ответ Данна ниже.
Либо сделайте свой макет строгим, чтобы он потерпел неудачу, если вы вызовете метод, для которого вы не ожидаете
new Mock<IMoq>(MockBehavior.Strict)
Или, если вы хотите, чтобы ваш макет был свободным, используйте .Throws (Исключение)
var m = new Mock<IMoq>(MockBehavior.Loose);
m.Expect(a => a.moo()).Throws(new Exception("Shouldn't be called."));
Запустите проверку после теста, для которого
Times.Never
задано перечисление. напримеристочник
Украдено у: ответ Джона Фостера на вопрос: «Нужна помощь, чтобы лучше понять Мок»
источник
На самом деле, это лучше указывать
.AtMost(0)
после оператора Returns.Хотя «броски» тоже работают,
AtMost(0)
более выразительно ИМХО.источник
Используйте .AtMostOnce ();
После реального теста, вызовите метод снова. Если он выдает исключение, он вызывается.
источник