Próbuję użyć OCMock do testowania mojej aplikacji. Ale jestem zdezorientowany, gdzie powinniśmy używać oczekiwać i gdzie użyć kodu pośredniczącego? Czy ktoś może pomóc?Jaka jest różnica w metodach oczekiwania i stubowania OCMock?
Odpowiedz
Podstawowa różnica jest taka: ty expect
rzeczy musi zdarzyć i stub
rzeczy może zdarzyć.
Są 2 sposoby na fałszywe obiekty: wywoływana jest metoda nieoczekiwana/nieobjęta lub oczekiwana metoda nie jest wywoływana.
- Nieoczekiwane wywołania. Kiedy fałszywy obiekt otrzymuje komunikat, który nie został zgasiony ani oczekiwany, natychmiast zgłasza wyjątek i test kończy się niepowodzeniem.
- Oczekiwane wywołania. Kiedy zadzwonisz pod numer
verify
(zazwyczaj pod koniec testu), sprawdza on, czy wszystkie oczekiwane metody zostały wywołane. Jeśli którykolwiek nie był, twój test się nie powiedzie.
Istnieje kilka rodzajów makiet, które zmieniają to zachowanie: ładne mocks i częściowe drwiny. Ładne mocks uniemożliwiają stosowanie metod stub - w zasadzie pozwalają na nieoczekiwane wywołania. Częściowe mocks są sposobem na przechwytywanie wiadomości wysyłanych do rzeczywistych obiektów. Wszelkie wiadomości, których się spodziewasz, lub fragmenty w częściowej makiety będą wysyłane do fałszywego obiektu. Wszystkie inne wiadomości są wysyłane do faktycznego obiektu. Zarówno dla ładnych makiet, jak i dla częściowych prób, nie uzyskasz nieudanych prób wywołania () (zasada # 1 powyżej).