BDD in Objective-C
Habe ich vor kurzem begonnen zu lernen, Objective-C und Schreibe meine tests mit OCUnit, das kommt gebündelt mit Xcode.
Ich bin eine lange Zeit Ruby-Programmierer und ich bin es gewohnt, RSpec und Cucumber - schöne BDD-frameworks.
Ist es eine anständige BDD-framework in Objective-C? Mir fehlen meine 'sollten' s 🙂
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist ein relativ neues Projekt namens uispec, die war inspiriert von RSpec Tests DSL. Die Beispiel-Skillung sieht wie folgt aus:
Halten Sie im Verstand, ich habe es nie benutzt, so gibt es eine chance, es wird nicht passen Ihre Bedürfnisse genau. Aber zumindest werden Sie in der Lage zu verwenden, die Codebasis, die als inspiration für das schreiben Ihrer eigenen test-framework.
Ich bin mit Kiwi-Bibliothek Schnell zu integrieren, funktioniert das ziemlich gut.
Vom Ihre github:
Adam Milligan von Pivotal Labs hat ein BDD-framework für Objective-C genannt Cedar, dass die Ziele sowohl für Cocoa und Cocoa Touch. Es nutzt Blöcke die in ähnlicher Weise wie RSpec. Hier ist ein Beispiel-Spezifikation:
Werfen Sie einen Blick auf, wie die
STAssert
Makros in OCUnit (SenTestingKit, aufgenommen mit Xcode) umgesetzt werden.In Ihrem eigenen unit test bundle, könnten Sie implementieren eine Kategorie
NSObject
zum hinzufügen von Methoden, wie Sie eine hypothetische-shouldBeValid
wäre dann rufen Sie den gleichen pass/fail-Maschinen, dieSTAssert
Makros jetzt tun.Wenn Sie nicht vertraut mit dem C-Präprozessor...
Werden Sie wahrscheinlich auch ein
#define
für Ihre Makros zu Durchlaufen, die richtigen Werte für__FILE__
und__LINE__
wenn Ihre BDD-tests fehlschlagen. Zum Beispiel, haben Sie vielleicht etwas wie das hier tun:Diese Weise aufgerufen wird es so:
Den code der compiler wird dies:
Den
__FILE__
und__LINE__
Präprozessor-Makros zu erweitern, um die aktuelle Datei und Zeile in der test-Quelldatei.Diese Weise, wenn ein test fehlschlägt, kann es passieren entsprechenden Informationen zu SenTestingKit zu senden Sie zurück zu Xcode. Der Fehler wird korrekt angezeigt in der Build Results-Fenster, und klicken Sie ergreifen wird, um die genaue Position des Fehlers in Ihren tests.
Können Sie einen Blick auf BDD-Von der Idee zur app wo sehen Sie ein Beispiel mit Kalebasse.
Es gibt nichts stoppen Sie, indem Sie Ihre test-Methode mit Sollten. Ich habe das mit NUnit mit C#.