Jaki jest najlepszy sposób na test jednostkowy kodu Objective - C?

Jakie istnieją frameworki do testowania jednostkowego kodu Objective-C? Chciałbym ramy, które integruje się ładnie z Apple Xcode.

Author: Jack Bashford, 2008-08-28

17 answers

Xcode zawiera XCTest, który jest podobny do OCUnit , ramy testowania jednostkowego Objective-C i ma pełne wsparcie dla uruchamiania testów jednostkowych opartych na XCTest w ramach procesu budowania projektu. Obsługa testów jednostkowych Xcode jest opisana w Xcode Overview: Using Unit Tests .

Z powrotem w Xcode 2 dni, napisałem serię postów na blogu o tym, jak wykonać niektóre typowe zadania z Xcode unit testing:

Pomimo używania OCUnit zamiast XCTest, koncepcje są w dużej mierze takie same.

W końcu napisałem też kilka postów o tym, jak pisać testy dla interfejsów użytkownika Cocoa; sposób, w jaki Cocoa jest skonstruowany, sprawia, że jest to stosunkowo proste, ponieważ nie musisz obracać pętli zdarzeń lub w większości przypadków coś takiego.

Pozwala to na testowanie nie tylko kodu na poziomie modelu, ale także kodu na poziomie kontrolera, a nawet na poziomie widoku.

 317
Author: Chris Hanson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-15 07:40:01

Zobacz GHUnit Autor: Gabriel Handford:

"cele GHUnit to:

Uruchamia testy jednostkowe w XCode, umożliwiając aby w pełni wykorzystać XCode Debugger. Prosty GUI, który Ci pomoże wizualizuj swoje testy. Pokaż stos ślady. Być instalowany jako framework (dla aplikacji Cocoa) z prostym (lub nie) konfiguracja docelowa; lub łatwy do spakowania do projektu iPhone ' a."

 50
Author: Paul Robinson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-25 13:53:55

Zacząłem używać narzędzia Google toolbox Testing rig dla iPhone, i jego działa świetnie dla mnie.

Google-toolbox-for-mac

 18
Author: Ryan Townshend,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-11-19 16:59:00

Sprawdź OCUnit . Sieć programistów Apple ma świetne wprowadzenie .

 13
Author: Mike Caron,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-28 19:46:10

Zauważ, że projekt Google Toolbox for Mac (GTM) po prostu rozszerza/rozszerza Framework Apple SenTestingKit (który jest oparty na OCUnit). Jak mówią na stronie projektu:

GTM ma kilka ulepszeń do standard SenTestingKit pozwalający na wykonuj testy jednostkowe UI, automatyczne wiązanie testy jednostkowe, śledzenie dziennika i jednostka testowanie na iPhonie, a także narzędzia do robienia statycznych i dynamicznych testowanie Twojego kodu.

Zwróć uwagę na następujący komentarz o testowaniu interfejsu użytkownika:

GTM ma szerokie wsparcie dla użytkowników testy jednostek interfejsu. Obsługuje badanie obrazowania i / lub stan wewnętrzny prawie wszystkich standardowe Obiekty Ui Cocoa/UIKit oraz ułatwia rozszerzenie tego obsługa własnych obiektów interfejsu użytkownika.

Zobacz stronę" weryfikacja kodu i testy jednostkowe", aby dowiedzieć się, jak z niego korzystać.

 12
Author: Clint Harris,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-03-02 19:14:58
 12
Author: Johannes Rudolph,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-10-24 17:48:12

Zdaję sobie sprawę, że to stare pytanie, ale jeśli wolisz testy w stylu BDD (rspec, Jasmine itp.) przez testowanie w stylu xUnit (Test:: Unit, JSUnit, JUnit, itp.), następnie możesz rozważyć sprawdzenie . Cedar wprowadza testowanie w stylu BDD do Objective-C, teraz, gdy Język Obsługuje zamknięcia.

Z radością wykorzystujemy Cedar w naszych projektach na iOS w Pivotal Labs i aktywnie pracujemy nad jego ulepszeniem. Wszelkie opinie i sugestie są mile widziane na [email protected]
 12
Author: Adam Milligan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-10-30 22:03:34

Zalecałbym również użycie narzędzi coverage, aby sprawdzić, która część kodu jest objęta testami jednostkowymi, a która nie. Podstawowe pokrycie kodu linii i gałęzi można wygenerować za pomocą narzędzia GCOV. Jeśli chcesz wygenerować ładne raporty pokrycia HTML, istnieją LCOVi ZCOV, które właśnie to robią.

 10
Author: Nikita Zhuk,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-03-14 21:47:00

Polecam gh-unit, ma ładny GUI do wyników testów.

Http://github.com/gabriel/gh-unit/tree/master

 7
Author: Joel Levin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-03-14 21:57:19

Wsparcie dla testów jednostkowych dołączone do xcode (dla jego prostej konfiguracji) w połączeniu z ocrunner (dla niektórych dobroci autotestu/Growl) jest obecnie moją ulubioną konfiguracją testów jednostkowych Obj-C.

 7
Author: Steph Thirion,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-08-10 05:58:07
 7
Author: NANNAV,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-14 10:14:37

Sen: te (twórca frameworka testowego dołączonego do Xcode) wyjaśnia, jak używać OCUnit z projektem iPhone' a: simple-iphone-iPad-unit-test.

 7
Author: nst,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-14 10:21:05

Matt Gallagher z Cocoa with Love ma bardzo dobry artykuł o testach jednostkowych.

 6
Author: Mihir Mathuria,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-12-23 18:39:28

Proponuję przyjrzeć się kiwi, open source BDD testing framework dla iOS: Kiwi

Sprawdź WIKI projektu, aby rozpocząć lub dostać książkę Daniela Steinberga " Test Driving iOS Development with Kiwi" test-driving-iOS-development

 5
Author: Krzysztof Grzywacz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-14 10:13:09

Używam SimpleUnitTest działa z iPhone i iPad libs.

Http://cbess.blogspot.com/2010/05/simple-iphone-ipad-unit-test.html

Jest wyposażony w szablon unit Test Xcode, aby łatwo dodać klasę unit test. Owija GTM.

Możesz dosłownie wrzucić go do aktywnego projektu i rozpocząć dodawanie testów jednostkowych w ciągu 3 minut (lub mniej).

 4
Author: C. Bess,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-10-30 22:03:48

Specta to nowoczesny framework TDD(Test Driven Development)/BDD (Behavior Driven Development), który działa na bazie XCTest. Obsługuje testy jednostkowe dla projektów iOS i Mac OS X.

 3
Author: dbainbridge,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-15 16:05:04

Mam nadzieję, że możesz użyć 'SenTestKit', z którego możesz przetestować każdą metodę.

 0
Author: Karthik,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-14 13:48:05