Dummy-Objekte zum Projekt hinzufügen

8

Ich möchte Dummy-Objekte zum Testen im Projekt hinzufügen, aber ich möchte nicht, dass sie in meinem endgültigen Build enthalten sind. Also ich habe meine AppDelegate -Klasse und dort im Import:

%Vor%

Und später:

%Vor%

Aber das Problem ist, dass ich das in mein Target Membership , nicht mein Testziel aufnehmen muss. Gibt es eine Möglichkeit, diese Dateien nicht in mein Hauptziel aufzunehmen, sondern nur in das Test -Ziel?

Bearbeiten: Was ich tun muss, ist meine App nach dem Start zu testen. Ich möchte es auf Simulator testen, aber App mit Beacons. Also habe ich Dummy-Objekte erstellt, die Beacons darstellen und den Location Manager simulieren. Wenn die App mit der TESTING-Option startet, startet sie nicht das Entfernungs-Beacon, sondern platziert stattdessen Dummy-Objekte als Beacon.

    
Kuba 29.09.2015, 19:39
quelle

3 Antworten

7

Sobald Sie diese Schritte ausgeführt haben, können Sie Ihrem Build Testklassen mit Testfunktionen hinzufügen. Um Ihre App mit der Testfunktion auszuführen, sollten Sie das Testschema auswählen, das unten konfiguriert ist.

Xcode-Projektkonfiguration (mit Xcode 7.0.1)

Damit bedingte Importe und Funktionen zum Testen wirksam sind, benötigen Sie die folgenden Bestandteile:

  1. Konfiguration testen
  2. Testziel
  3. Testschema

Kurze Erläuterung zu Schemata, Zielen und Build-Konfigurationen

  • Schemas zeigen auf Ziele und Konfigurationen.
  • Ziele können mit verschiedenen Build-Einstellungen konfiguriert werden.
  • Konfigurationen können hinzugefügt werden, um die Zielerstellungseinstellungen zu erweitern.

Hier sind die Schritte:

1. Duplizieren Sie eine Konfiguration zum Testen

Gehen Sie folgendermaßen vor, wenn die Projektdatei im Projektnavigator ausgewählt ist:

  1. Wählen Sie das Projektziel
  2. Wählen Sie Info
  3. Wählen Sie +, um eine Konfiguration hinzuzufügen

  1. Wählen Sie die Option "Debuggen" aus Duplicate "Debug" Konfiguration

  2. Benennen Sie die neue Konfiguration um und ziehen Sie sie, um die Reihenfolge zu ändern

2. Dupliziere ein Ziel zum Testen

Fügen Sie nun, nachdem Sie eine Testkonfiguration erstellt haben, ein Testziel hinzu. Wählen Sie im Projektnavigator mit der Projektdatei die folgenden Schritte aus:

  1. Klicken Sie mit der rechten Maustaste oder bei gedrückter Wahltaste auf ein vorhandenes Ziel und wählen Sie "Duplizieren".

  2. Tippen Sie auf das neue Ziel, um es umzubenennen, und ziehen Sie es, um Ihre Ziele neu zu ordnen.

3. Schemata verwalten

Jetzt, da Sie ein Testziel und eine Konfiguration haben, können Sie ein Schema hinzufügen, das auf das neue Ziel und die neue Konfiguration verweist.

  1. Tippen Sie auf die Schemas (neben der Stopp-Schaltfläche) und wählen Sie Schemata verwalten ... aus.

  2. Wenn Sie im Popup-Fenster Schema-Manager die automatische Erstellung von Schemas gewählt haben, wird das neue Schema bereits aufgelistet. Andernfalls können Sie im Popup auf + tippen, um ein Schema hinzuzufügen. Jedes Schema kann wie hier gezeigt geteilt werden:

  3. Tippen Sie auf das neue Schema, um es umzubenennen, und ziehen Sie es zum Neuordnen:

  4. Um das neue Schema zu bearbeiten, stellen Sie sicher, dass es ausgewählt ist, und tippen Sie auf Bearbeiten ...

  5. Wählen Sie im Bearbeitungsfeld die Build-Konfiguration testen aus

  6. Stellen Sie sicher, dass das Schema auf das Testziel zeigt, indem Sie auf die Dropdown-Liste Executable tippen:

  7. Stellen Sie sicher, dass das Schema auf die richtige Build-Konfiguration für andere Aktionen wie Automated Testing zeigt:

4. Konfigurieren Sie die Buildeinstellungen für Ihre Ziele

Nachdem Sie Ihr Testschema so eingerichtet haben, dass es auf die Testkonfiguration zeigt, verhält es sich genau so wie die Debugkonfiguration, bis Sie die Buildeinstellungen ändern. Befolgen Sie diese Schritte, um die Build-Einstellungen für Ihre Testing-Konfiguration zu ändern:

  1. Für die meisten Build-Einstellungen gibt es eine Option für jede Konfiguration. Stellen Sie bei der Auswahl der zu verwendenden Konfiguration in Ihren Einstellungen sicher, dass das Hauptziel ausgewählt ist:

  2. Die Präprozessor-Makros befinden sich im Abschnitt "Apple LLVM 7.0 - Vorverarbeitung":

  3. Tippen Sie auf eine Zeile, um sie auszuwählen, tippen Sie auf die Eingabetaste, um sie zu bearbeiten und Ihre Änderungen zu übernehmen. Verwenden Sie die Pfeiltasten, um sich nach oben oder unten zu bewegen. Es empfiehlt sich, alle Präprozessor-Makros für alle Konfigurationen wie folgt zu definieren:

5. Fügen Sie Ihrem Testziel eine Klasse hinzu

Nun zeigt das Testschema auf eine Konfiguration, die sich von Ihrer Debug-Konfiguration unterscheidet. Sie sollten nun in der Lage sein, das Testschema aus dem Dropdown-Menü "Schemata" auszuwählen und die Testkonfiguration auszuführen.

Sie können die Zielmitgliedschaft einer Klasse auf zwei Arten ändern.

  1. Wenn Sie eine neue Datei erstellen, enthält das dritte Feld, in dem Sie den Speicherort auswählen können, Optionen für jedes Ziel:

  1. Wenn Sie eine Datei in Ihrem Projektnavigator auswählen, verfügt der Dateiinspektor über das Panel Zielmitgliedschaft, in dem Sie Änderungen vornehmen können:

Schemata

Schemas werden normalerweise gepaart, um Konfigurationen zu erstellen. Eine gute Praxis ist es, für jede Zielgruppe ein Schema / eine Konfiguration zu haben, das eine andere Buildversion benötigt. Im Folgenden sind einige grundlegende Zielgruppen aufgeführt, die normalerweise separate Konfigurationen benötigen:

  • Entwickler & gt; DEBUG
  • Entwickler & gt; TESTEN
  • Interner Test & gt; ENTWICKLUNG
  • Betatester / Produktion & gt; APP STORE

Unterklassen

Wenn Sie eine Funktionalität im Testmodus ändern möchten, können Sie eine Unterklasse verwenden und die Unterklasse nur zu Ihrem Testziel hinzufügen.

    
Sheamus 06.10.2015, 23:50
quelle
0

Okay, wenn ich es richtig verstanden habe, solltest du:

  • a) Erstellen Sie ein separates Ziel zum Testen von Porposes (als @Carl Veazey und @Rainer Schwarze suggerieren) mit fast der gleichen Codebasis wie deine Hauptversion Ziel.
  • b) Ich würde empfehlen, Ihren Location Manager und Beacon zu verspotten Objekte über Unterklassen von BeaconLocationManager und YourBeacon
    (beispielsweise). Dann überschreiben Sie einfach das reale Verhalten mit Ihrem
    Simulator-spezifische Aktionen.

Am Ende des Tages wird Ihr Testziel nur zwei weitere Klassen (Mock Beacon Manager und Mock Beacon) im Vergleich zum Hauptziel enthalten. Es sind keine weiteren Änderungen an der Projektstruktur oder Codesemantik erforderlich. Viel Glück.

    
Arthur Gevorkyan 03.10.2015 08:20
quelle
0

Ich könnte leicht variieren, falsch daran sein, aber ich vermute, das könnte funktionieren:

Wie bei der Verwendung von Cocoapoden deaktivieren Sie beim Erstellen der Pod-Datei das Ziel (Projektname). Was ist, wenn Sie das tun, dann wählen Sie das Ziel (Project NameTests)

    
Caleb Kleveter 08.10.2015 13:19
quelle