Frage

Welche Frameworks gibt es für Unit-Tests von Objective-C-Code?Ich hätte gerne ein Framework, das sich gut in Apple Xcode integrieren lässt.

War es hilfreich?

Lösung

Xcode enthält XCTest, das ähnlich ist OCUnit, ein Objective-C-Unit-Test-Framework, und bietet volle Unterstützung für die Ausführung von XCTest-basierten Unit-Tests als Teil des Build-Prozesses Ihres Projekts.Die Unit-Test-Unterstützung von Xcode wird im beschrieben Xcode-Übersicht:Verwenden von Unit-Tests.

In den Xcode 2-Tagen habe ich eine Reihe von Weblog-Beiträgen darüber geschrieben, wie man einige häufige Aufgaben mit Xcode-Unit-Tests durchführt:

Obwohl OCUnit anstelle von XCTest verwendet wird, sind die Konzepte weitgehend dieselben.

Schließlich habe ich auch ein paar Beiträge darüber geschrieben, 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.

Dies ermöglicht eine testgetriebene Entwicklung nicht nur für Ihren Code auf Modellebene, sondern auch für Ihren Code auf Controller-Ebene und sogar auf Ansichtsebene.

Andere Tipps

Kasse GHUnit von Gabriel Handford:

„Die Ziele von GHUnit sind:

Führen Sie Unit -Tests in Xcode aus, sodass Sie den Xcode -Debugger vollständig verwenden können.Eine einfache GUI, mit der Sie Ihre Tests visualisieren können.Stapelspuren zeigen.Seien Sie als Framework (für Kakao -Apps) mit einem einfachen (oder nicht) Zielaufbau installierbar;oder einfach in Ihr iPhone -Projekt zu verpacken. "

Ich habe angefangen, das Google Toolbox-Testgerät für das iPhone zu verwenden, und es funktioniert bei mir hervorragend.

Google-Toolbox-für-Mac

Kasse OCUnit.Apples Entwicklernetzwerk hat eine tolle Einführung.

Beachten Sie, dass das Google Toolbox for Mac (GTM)-Projekt lediglich das SenTestingKit-Framework von Apple (das selbst auf OCUnit basiert) erweitert/erweitert.Wie es auf der Projektseite heißt:

GTM hat mehrere Verbesserungen zum Standard -SentestingKit, sodass Sie UI -Unit -Tests, automatisierte Bindungs ​​-Unit -Tests, Protokollverfolgung und Unit -Tests auf dem iPhone sowie Tools zum statischen und dynamischen Testen Ihres Codes durchführen können.

Beachten Sie den folgenden Kommentar zum Testen von Benutzeroberflächen:

GTM hat eine umfassende Unterstützung für Benutzeroberflächen -Unit -Tests.Es unterstützt das Testen des Bildgebungs- und/oder inneren Zustands fast aller Standard -Kakao-/UII -UI -Objekte und erleichtert es Ihnen, diese Unterstützung auf Ihre eigenen UI -Objekte zu erweitern.

Sehen Sie ihre „Codeüberprüfung und Unit-TestsAnweisungen zur Verwendung finden Sie auf der Seite „.

Ich bin zu dem Schluss gekommen, dass GHUnit das fortschrittlichste Test-Framework für Objective-C ist.Ich habe eine gemacht aufrunden zum Testen von Frameworks auf meinem Blog.Es ist am flexibelsten in Bezug auf die Bereitstellung (iPhone, Simulator oder natives Mac OS) und die Durchsetzungsfunktionen.Da es auf GTM basiert, übernimmt es alle Vorteile von GTM gegenüber SenTestingKit, fügt aber noch viel mehr hinzu.Ein weiterer Pluspunkt ist, dass es sehr aktiv gepflegt wird.

Ich habe Anstrengungen zur Integration unternommen OCMock in GHUnit, es funktioniert großartig!.Sie können den Code erhalten Github.

Mir ist klar, dass dies eine alte Frage ist, aber wenn Sie Tests im BDD-Stil (rspec, Jasmine usw.) dem Testen im xUnit-Stil (Test::Unit, JSUnit, JUnit usw.) vorziehen, sollten Sie einen Blick darauf werfen Zeder.Cedar bringt Tests im BDD-Stil zu Objective-C, da die Sprache nun Abschlüsse unterstützt.

Wir verwenden Cedar gerne für unsere iOS-Projekte unter Zentrale Labore, und wir arbeiten aktiv daran, es zu verbessern.Feedback oder Vorschläge sind unter cedar-discuss@googlegroups.com willkommen

Ich würde außerdem empfehlen, Coverage-Tools zu verwenden, um zu sehen, welche Teile des Codes durch Unit-Tests abgedeckt werden und welche nicht.Mit dem kann eine grundlegende Leitungs- und Zweigstellencodeabdeckung generiert werden GCOV Werkzeug.Wenn Sie schöne HTML-Abdeckungsberichte erstellen möchten, gibt es diese LCOV Und ZCOV die genau das tun.

Ich empfehle gh-unit, es hat eine schöne GUI für Testergebnisse.

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

Der Unit-Testing-Unterstützung in xcode gebündelt (wegen der einfachen Einrichtung) kombiniert mit ocrunner (für etwas Autotest/Growl-Güte) ist derzeit mein Lieblings-Obj-C-Unit-Test-Setup.

Hier gibt es eine ganze Menge davon

List_of_unit_testing_frameworks in Objective-C

Sen:te (der Ersteller des in Xcode enthaltenen Test-Frameworks) erklärt, wie man OCUnit mit einem iPhone-Projekt verwendet: einfacher-iphone-ipad-unit-test.

Matt Gallagher von Cocoa with Love hat eine sehr guter Artikel zum Unit-Testen.

Ich würde vorschlagen, einen Blick auf Kiwi zu werfen, ein Open-Source-BDD-Test-Framework für iOS:Kiwi

Schauen Sie sich zum Starten das WIKI des Projekts an oder holen Sie sich Daniel Steinbergs Buch „Test Driving iOS Development with Kiwi“.Testfahrten-iOS-Entwicklung

Ich verwende SimpleUnitTest und funktioniert mit iPhone- und iPad-Bibliotheken.

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

Im Lieferumfang ist eine Unit-Test-Xcode-Vorlage enthalten, mit der Sie ganz einfach 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.

Specta ist ein modernes TDD(Test Driven Development)/BDD(Behavior Driven Development)-Framework, das auf XCTest läuft.Es unterstützt Unit-Tests für iOS- und Mac OS X-Projekte.

Ich hoffe, Sie können „SenTestKit“ verwenden, mit dem Sie jede einzelne Methode testen können.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top