2016-04-27 8 views
5

Ich arbeite mit Unit Testing in Xcode mit XCTest von Xcode in Ziel C. Ich weiß, wie Modul in Swift wie folgt zu importieren.Was ist die Alternative von @testable Import in Objective C


@testable import AppName 

Was ist die Alternative in Objective C.

+0

Können Sie sie nicht einfach "importieren"? Oder möchten Sie auf private Methoden von Objective C zugreifen? – Tomer

+1

@Tomer: Dann muss ich alle Dateien importieren, um Quellen von UnitTestCase Ziel zu kompilieren, die keine gute Lösung zu sein scheint. –

+0

Ihr Testziel ist mit Ihrem Hauptziel verknüpft. Was brauchst du, außer das .h zu importieren? –

Antwort

2

@testable Überschreibungen Zugriffsrechte in Swift, so dass Sie internal Methoden in Unit-Tests testen.

Objective-C hat keine solchen Zugriffsmodifizierer, daher brauchen Sie nicht @testable und Sie importieren das Modul nur normal.

Wenn Sie interne Swift-Methoden testen müssen, müssen Sie Ihre Tests in Swift schreiben.

+0

Laut Apple-Dokumentation'Hinweis: @testable bietet Zugriff nur für "interne" Funktionen; "Private" Deklarationen sind außerhalb ihrer Datei nicht sichtbar, selbst wenn @ testable verwendet wird. –

+0

@BabulPrabhakar Alles klar, danke, das habe ich behoben. – Sulthan

2

In Objective C können Sie einfach #import sie, da es keine solche "interne" Methode Zugriff Einschränkungen wie in Swift gibt.

Auch auf Xcode 6 sollte Ihr Hauptziel bereits mit dem Testziel verknüpft sein. Wenn nicht, versuchen Sie das Kontrollkästchen "Host-Anwendungs-APIs testen" in Ihrem Testziel> Allgemein> Testen. Werfen Sie einen Blick auf this question für weitere Informationen.

+0

Ich habe mit Functional UI Testing gearbeitet, wo ich Core-Data-Objekte, die in der App verwendet werden, vortäuschen muss, daher wird diese Lösung in meinem Fall nicht funktionieren. –

+1

Einfach #import was? Wenn sich die Swift-Dateien nicht im Testziel befinden, befinden sie sich nicht in AppTest-Swift.h und auf App-Swift.h kann beim Kompilieren des Testziels nicht zugegriffen werden. – Uncommon

Verwandte Themen