2016-05-20 5 views
1

Ist dies nur eines der Dinge, an die sich Entwickler von Unternehmen gewöhnen müssen?Gibt es eine Möglichkeit, Komponententests für Swift auszuführen, ohne die Anwendung tatsächlich ausführen zu müssen?

Gibt es einen Vorteil für jedes Mal, wenn Sie Ihre Unit-Tests ausführen, muss die Anwendung hochgefahren werden?

Mache ich etwas so komplett falsch, dass niemand diese Frage versteht - Googeln scheint niemanden darüber zu stöhnen.

+0

Im Allgemeinen, wenn Sie Unit-Tests durchführen, führen Sie nicht die eigentliche App selbst aus. Es wird nur der Code ausgeführt, den Sie von Ihrem Komponententest aufrufen. Wenn Sie eine gute "Code-Abdeckung" haben, werden Sie natürlich die meisten, wenn nicht alle Routinen in der App testen, aber das unterscheidet sich sehr von der "Ausführung" der gesamten App selbst. Sie können dies in UI-Tests tun, aber nicht im Komponententest. Nachdem Sie gesagt haben, dass Sie eine iOS-App testen, wird der Simulator "hochgefahren", aber die App wird nicht selbst ausgeführt, sondern lediglich die Tests im Simulator ausgeführt. – Rob

+0

Hallo Rob, wenn es den Simulator "hochfährt", löst es die Hauptmethode auf der Anwendung aus - ist das, was Sie erwarten würden, oder ich konfiguriere falsch eingestellt. –

+0

Nein, das stimmt. Mein Punkt ist, dass Sie verschiedene öffentliche Methoden Ihrer Klassen trainieren werden, und Sie werden die App nicht zum Beispiel über die gesamte Benutzeroberfläche ausführen. – Rob

Antwort

3

Jon Reid schrieb einen guten Blogbeitrag darüber, dass die Anwendung beim Ausführen von Komponententests nicht ausgeführt wird: http://qualitycoding.org/app-delegate-for-tests/.

Die Idee ersetzt grundsätzlich die App Delegierter in main.swift für eine „leer“ App Delegierter, wenn Sie die Tests Ziel laufen, so dass Sie laufen keine Logik-Anwendung, wenn die Tests ausgeführt werden.

Verwandte Themen