2015-08-11 9 views
5

Ich mache Unit-Tests in Swift und stoße auf ein Problem. Jedes Mal, wenn ich die Tests ausführen, erhalte ich die Fehlermeldung:App-Delegat kann nicht in App-Delegaten in Tests umgewandelt werden

Could not cast value of type 'app.AppDelegate' to 'app_Tests.AppDelegate' 

Ich stellte sicher, dass die AppDelegate aus den Tests Bündel unkontrolliert waren, und die View-Controller können nicht die AppDelegate mehr zugreifen. Hat jemand eine Lösung für dieses Problem? Danke im Voraus!

+0

hallo, ist es, was Sie erwartet , http://stackoverflow.com/questions/31990724/cannot-access-appdelegate-in-xctestcase-objects-or-anyanything-that-references-it halten mich auf dem Laufenden –

+0

Ich denke, Sie werden etwas ähnlich wie die Antwort unten aussehen http://StackOverflow.com/A/32161983/2010154 – NSAnant

Antwort

2

Ich glaube, Ihre view controllers hat in Ihrem Testpaket überprüft. In diesem Fall verwenden Sie view controllers Ihr Testmodul und App Delegieren Sie Ihr reales Modul.

Target Membership

Wenn Sie in Ihrer Testdatei @testable import <module name> in der Spitze, wo Sie Ihren App-Name, zum Beispiel app. Dann sollten Sie Ihre view controllers ohne überprüfte für Ihre Tests haben.

Das Ding kommt mit Swift 2.0, die 2015

+0

Ich habe Ihre Lösung versucht.Aber wenn ich Methode in meinem Viewcontroller geschrieben habe (zB: func getEmail()) bedeutet, dass ich diese Methode nicht aufrufen konnte in meinem Test.Wie man diese Methode im Testziel nennt. – Madhumitha

+0

Sollte diese Methode eine öffentliche Methode sein? – Madhumitha

+0

@Madhumitha nein, '@testable import' bedeutet, dass Sie auch interne Methoden verwenden können. Aber nicht privat. –

Verwandte Themen