Można użyć AssertWasCalled()
w Rhino.Mocks
Twoje oczekiwanie, że test powinien zatrzymać jeśli metoda jest wywoływana i nie należy uruchamiać następujące wiersze oznacza, że masz napisane testy źle. Miej dowód (Nunit lub inny) jako ostatnią linijkę testu i podziel test. Prawdopodobnie testujesz dwie rzeczy, a to nie jest testowanie jednostkowe. W testach nie ma takiego strumienia rozgałęzień. Wszystkie linie w testach powinny zostać wykonane. I najlepiej, każdy test powinien mieć tylko jedno twierdzenie.
Przy takim rodzaju przepływu, jak się spodziewamy, tracisz również informacje zwrotne z testów, gdy się nie powiedzie. Nie wiesz, po prostu patrząc na nazwę testu, co nie powiodło się.
Chcesz, aby próbka była w stanie zasygnalizować zakończenie testu? – rerun
Tak; Powodem jest to, że jeśli nie "arrrange" kilka obiektów, które są dotknięte po wywołaniu tej metody, mam wyjątek. I nie uważam za istotne powiększanie mojego testu tylko po to, by zapobiec wyjątkowi, podczas gdy jestem przekonany, że test jest przekazywany przez wywołanie tej oczekiwanej metody. – pencilCake
Myślę, że powinieneś raczej poprawić swój projekt, niż zaciemnić przebieg wykonywania testów. Nie znając więcej szczegółów, trudno jest określić, na czym polega problem, ale wydaje się, że masz metodę, która wykonuje więcej niż jedną rzecz (testowaną rzecz i coś, co chcesz pominąć), naruszając zasadę jednej odpowiedzialności. – hammar