Welche Frameworks gibt es für Unit-Test-Objective-C-Code? Ich möchte ein Framework, das sich gut in Apple Xcode integrieren lässt.
330
Welche Frameworks gibt es für Unit-Test-Objective-C-Code? Ich möchte ein Framework, das sich gut in Apple Xcode integrieren lässt.
Antworten:
Xcode enthält XCTest, das OCUnit , einem Objective-C-Framework für Komponententests , ähnelt und die vollständige Ausführung von XCTest-basierten Komponententests als Teil des Erstellungsprozesses Ihres Projekts unterstützt. Die Unterstützung von Xcode-Komponententests wird in der Xcode-Übersicht: Verwenden von Komponententests beschrieben .
In den 2 Tagen von Xcode habe ich eine Reihe von Weblog-Posts geschrieben, in denen erläutert wird, wie einige allgemeine Aufgaben beim Testen von Xcode-Einheiten ausgeführt werden:
Trotz der Verwendung von OCUnit anstelle von XCTest sind die Konzepte weitgehend identisch.
Schließlich schrieb ich auch einige Beiträge darüber, wie man Tests für Cocoa-Benutzeroberflächen schreibt. Die Art und Weise, wie Cocoa strukturiert ist, macht es relativ einfach, da Sie in den meisten Fällen keine Ereignisschleife oder ähnliches drehen müssen.
Auf diese Weise können Sie nicht nur Ihren Code auf Modellebene, sondern auch Ihren Code auf Controller- und sogar Ansichtsebene testgetrieben entwickeln.
quelle
Schauen Sie sich GHUnit von Gabriel Handford an:
quelle
Ich habe angefangen, das Google Toolbox-Testgerät für das iPhone zu verwenden, und es funktioniert hervorragend für mich.
Google-Toolbox-für-Mac
quelle
Schauen Sie sich OCUnit an . Apples Entwicklernetzwerk bietet eine großartige Einführung .
quelle
Beachten Sie, dass das Google Toolbox für Mac (GTM) -Projekt lediglich das SenTestingKit-Framework von Apple erweitert / erweitert (das selbst auf OCUnit basiert). Wie es auf der Projektseite heißt:
Beachten Sie den folgenden Kommentar zum Testen der Benutzeroberfläche:
Anweisungen zur Verwendung finden Sie auf der Seite " Codeüberprüfung und Komponententests ".
quelle
Ich bin zu dem Schluss gekommen, dass GHUnit das fortschrittlichste Testframework für Objective-C ist. Ich habe in meinem Blog eine Zusammenfassung der Test-Frameworks erstellt. Es ist am flexibelsten in Bezug auf Bereitstellung (iPhone, Simulator oder Mac OS Native) und Assert-Funktionen. Da es auf GTM basiert, erbt es alle Vorteile von GTM gegenüber SenTestingKit, fügt aber noch viel mehr hinzu. Ein weiterer Bonus ist, dass es sehr aktiv gepflegt wird.
Ich habe mich bemüht, OCMock in GHUnit zu integrieren , es funktioniert großartig!. Sie können den Code auf Github erhalten .
quelle
Mir ist klar, dass dies eine alte Frage ist, aber wenn Sie Tests im BDD-Stil (rspec, Jasmine usw.) gegenüber Tests im xUnit-Stil (Test :: Unit, JSUnit, JUnit usw.) bevorzugen, sollten Sie Cedar ausprobieren . Cedar bringt Tests im BDD-Stil zu Objective-C, da die Sprache jetzt Schließungen unterstützt.
Wir verwenden Cedar gerne für unsere iOS-Projekte bei Pivotal Labs und arbeiten aktiv daran, es zu verbessern. Feedback oder Vorschläge sind unter [email protected] willkommen
quelle
Ich würde auch empfehlen, Coverage-Tools zu verwenden, um festzustellen, welcher Teil des Codes mit Unit-Tests abgedeckt ist und welcher nicht. Mit dem GCOV- Tool kann eine grundlegende Abdeckung von Leitungs- und Zweigcodes generiert werden . Wenn Sie nette HTML-Berichterstattungsberichte erstellen möchten, gibt es LCOV und ZCOV , die genau das tun.
quelle
Ich empfehle gh-unit, es hat eine schöne GUI für Testergebnisse.
http://github.com/gabriel/gh-unit/tree/master
quelle
Die in xcode gebündelte Unterstützung für Unit-Tests (für die einfache Einrichtung) in Kombination mit ocrunner (für einige Autotest- / Growl- Vorteile ) ist derzeit meine bevorzugte Einrichtung für Obj-C-Unit-Tests.
quelle
hier ist eine ganze Menge von ihnen
List_of_unit_testing_frameworks in Objective-C
quelle
Sen: te (der Entwickler des in Xcode enthaltenen Testframeworks) erklärt, wie OCUnit mit einem iPhone-Projekt verwendet wird: simple-iphone-ipad-unit-test .
quelle
Matt Gallagher von Cocoa with Love hat einen sehr guten Artikel über Unit-Tests.
quelle
Ich würde vorschlagen, sich mit Kiwi zu befassen, einem Open-Source-BDD-Testframework für iOS: Kiwi
Schauen Sie sich das WIKI des Projekts an, um Daniel Steinbergs Buch "Test Driving iOS Development with Kiwi" zu testen oder zu erhalten
quelle
Ich benutze SimpleUnitTest funktioniert mit iPhone und iPad Bibliotheken.
http://cbess.blogspot.com/2010/05/simple-iphone-ipad-unit-test.html
Es wird mit einer Unit-Test-Xcode-Vorlage geliefert, mit der Sie problemlos eine Unit-Test-Klasse hinzufügen können. Wraps GTM.
Sie können es buchstäblich in ein aktives Projekt einfügen und innerhalb von 3 Minuten (oder weniger) mit dem Hinzufügen von Komponententests beginnen.
quelle
Specta ist ein modernes TDD- Framework (Test Driven Development) / BDD-Framework (Behavior Driven Development), das auf XCTest basiert. Es unterstützt Unit-Tests für iOS- und Mac OS X-Projekte.
quelle
Ich hoffe, Sie können 'SenTestKit' verwenden, mit dem Sie jede einzelne Methode testen können.
quelle