Jak sprawdzić, czy ta metoda NIE została wywołana w Moq ?
Czy ma coś takiego jak AssertWasNotCalled?
AKTUALIZACJA: Począwszy od wersji 3.0 można zastosować nową składnię:
mock.Verify(foo => foo.Execute("ping"), Times.Never());
AKTUALIZACJA : Od wersji 3 sprawdź aktualizację powyższego pytania lub odpowiedź Danna poniżej.
Albo uczyń swoją próbną surową, aby nie zadziałała, jeśli wywołasz metodę, na którą nie oczekujesz
new Mock<IMoq>(MockBehavior.Strict)
Lub, jeśli chcesz, aby Twój makieta był luźny, skorzystaj z .Throws (wyjątek)
var m = new Mock<IMoq>(MockBehavior.Loose);
m.Expect(a => a.moo()).Throws(new Exception("Shouldn't be called."));
Uruchom weryfikację po teście, który ma
Times.Never
zestaw wyliczeń. na przykładźródło
Skradzione z: Odpowiedź Johna Fostera na pytanie „Potrzebujesz pomocy, aby lepiej zrozumieć Moq”
źródło
W rzeczywistości lepiej jest określić
.AtMost(0)
po instrukcji Returns.Chociaż „rzuty” również działają,
AtMost(0)
jest bardziej wyraziste IMHO.źródło
Użyj .AtMostOnce ();
Po prawdziwym teście ponownie wywołaj metodę Jeśli zgłasza wyjątek, został wywołany.
źródło