Jakie istnieją ramy do testowania jednostkowego kodu celu C? Chciałbym ramy, które ładnie integrują się z Apple Xcode.
Jakie istnieją ramy do testowania jednostkowego kodu celu C? Chciałbym ramy, które ładnie integrują się z Apple Xcode.
Odpowiedzi:
Xcode zawiera XCTest, który jest podobny do OCUnit , frameworka testowania jednostek Objective-C i ma pełną obsługę uruchamiania testów jednostkowych opartych na XCTest w ramach procesu budowania projektu. Obsługa testów jednostkowych Xcode została opisana w Omówieniu Xcode: Korzystanie z testów jednostkowych .
Wracając do Xcode 2 dni, napisałem serię postów na blogu o tym, jak wykonywać niektóre typowe zadania z testowaniem jednostek Xcode:
Pomimo używania OCUnit zamiast XCTest, koncepcje są w dużej mierze takie same.
Na koniec napisałem także kilka postów na temat pisania testów dla interfejsów użytkownika Cocoa; sposób, w jaki kakao jest zbudowane, sprawia, że jest to stosunkowo proste, ponieważ w większości przypadków nie trzeba obracać pętli zdarzeń ani nic takiego.
Umożliwia to tworzenie testów opartych na testach nie tylko kodu na poziomie modelu, ale także kodu na poziomie kontrolera, a nawet kodu na poziomie widoku.
Sprawdź GHUnit autorstwa Gabriel Handford:
„Celami GHUnit są:
Uruchamia testy jednostkowe w XCode, umożliwiając pełne wykorzystanie debugera XCode. Prosty graficzny interfejs użytkownika ułatwiający wizualizację testów. Pokaż ślady stosu. Być instalowalnym jako platforma (dla aplikacji Cocoa) z prostą (lub nie) docelową konfiguracją; lub łatwe do spakowania do projektu iPhone'a ”.
Zacząłem używać zestawu testowego Google Toolbox dla iPhone'a, który działa świetnie dla mnie.
Sprawdź OCUnit . Sieć programistów Apple ma świetne wprowadzenie .
Pamiętaj, że projekt Google Toolbox dla komputerów Mac (GTM) po prostu rozszerza / rozszerza platformę Apple SenTestingKit (która sama w sobie opiera się na OCUnit). Jak mówią na stronie projektu:
GTM ma kilka ulepszeń w stosunku do standardowego SenTestingKit, umożliwiając przeprowadzanie testów jednostek interfejsu użytkownika, automatycznych testów jednostek powiązań, śledzenia dzienników i testów jednostek na iPhonie, a także narzędzia do przeprowadzania statycznych i dynamicznych testów kodu.
Zwróć uwagę na następujący komentarz na temat testowania interfejsu użytkownika:
GTM ma szerokie wsparcie dla testów jednostek interfejsu użytkownika. Obsługuje testowanie obrazu i / lub stanu wewnętrznego prawie wszystkich standardowych obiektów interfejsu użytkownika Cocoa / UIKit i ułatwia rozszerzenie tej obsługi na własne obiekty interfejsu użytkownika.
Zobacz stronę „ Weryfikacja kodu i testy jednostkowe ”, aby uzyskać instrukcje na temat korzystania z niego.
Doszedłem do wniosku, że GHUnit to najbardziej zaawansowana platforma testowa dla Objective-C. Zrobiłem podsumowanie ram testowych na moim blogu. Jest najbardziej elastyczny pod względem wdrażania (natywny iPhone, symulator lub Mac OS) i zapewnia funkcje. Ponieważ jest oparty na GTM, dziedziczy wszystkie zalety GTM w stosunku do SenTestingKit, ale dodaje także znacznie więcej. Kolejną zaletą jest to, że jest utrzymywany bardzo aktywnie.
Podjęłam starania, aby zintegrować OCMock z GHUnit, działa świetnie! Możesz pobrać kod na github .
Zdaję sobie sprawę, że to stare pytanie, ale jeśli wolisz testowanie w stylu BDD (rspec, Jasmine itp.) Niż testowanie w stylu xUnit (Test :: Unit, JSUnit, JUnit itp.), Możesz rozważyć sprawdzenie Cedar . Cedar przenosi testy w stylu BDD do Objective-C, teraz, gdy język obsługuje zamykanie.
Z radością wykorzystujemy Cedar do naszych projektów iOS w Pivotal Labs i aktywnie pracujemy nad jego ulepszeniem. Wszelkie uwagi i sugestie są mile widziane na cedar-discuss@googlegroups.com
Poleciłbym również użyć narzędzi pokrycia, aby zobaczyć, która część kodu jest objęta testami jednostkowymi, a które nie. Za pomocą narzędzia GCOV można wygenerować podstawowe pokrycie linii i kodu oddziału . Jeśli chcesz generować ładne raporty pokrycia HTML, istnieją LCOV i ZCOV, które właśnie to robią.
Polecam gh-unit, ma ładny GUI do wyników testów.
Wsparcie testów jednostkowych w pakiecie xcode (dla jego prostej konfiguracji) w połączeniu z ocrunner (dla niektórych autotestów / dobroci Growl) jest obecnie moją ulubioną konfiguracją testów jednostkowych Obj-C.
jest ich dużo
Sen: te (twórca środowiska testowego dołączonego do Xcode) wyjaśnia, jak używać OCUnit z projektem iPhone'a: simple-iphone-ipad-unit-test .
Matt Gallagher z Cocoa with Love ma bardzo dobry artykuł na temat testów jednostkowych.
Sugerowałbym przyjrzenie się Kiwi, platformie testowej BDD typu open source dla iOS: Kiwi
Sprawdź WIKI projektu, aby rozpocząć lub zdobyć książkę Daniela Steinberga „Test Driving iOS Development with Kiwi” test-driving-ios-development
Używam SimpleUnitTest współpracuje z bibliotekami iPhone i iPad.
http://cbess.blogspot.com/2010/05/simple-iphone-ipad-unit-test.html
Jest dostarczany z szablonem Xcode testu jednostkowego, aby łatwo dodać klasę testu jednostkowego. Zawija GTM.
Możesz dosłownie upuścić go do aktywnego projektu i rozpocząć dodawanie testów jednostkowych w ciągu 3 minut (lub krócej).