2015-08-11 13 views
5

Sto eseguendo i test delle unità in Swift e sto riscontrando un problema. Ogni volta che esegue il test, ottengo l'errore:Impossibile inoltrare il delegato dell'app al delegato app nei test

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

ho fatto in modo che l'AppDelegate era incontrollato dal fascio test, ei controller di vista non possono più accedere al delegato app. Qualcuno ha una soluzione a questo problema. Grazie in anticipo!

+0

ciao, è vero quello che vi aspettavate , http://stackoverflow.com/questions/31990724/cannot-access-appdelegate-in-xctestcase-objects-or-anything-that-references-it tienimi informato –

+0

Penso che sembrerai qualcosa di simile alla risposta qui sotto http://stackoverflow.com/a/32161983/2010154 – NSAnant

risposta

2

Penso che il tuo view controllers abbia selezionato target membership nel pacchetto di prova. In questo caso, il tuo modulo di test view controllers utilizza il modulo Test e l'App Delega il tuo modulo reale.

Target Membership

Se avete nel vostro file di prova @testable import <module name> nella parte superiore, dove il vostro nome app, ad esempio app. Quindi dovresti avere capacità per il tuo view controllers senza controllare target membership per i tuoi test.

Questa cosa viene fornito con Swift 2.0 che è stato rilasciato nel mese di settembre 2015.

+0

Ho provato la tua soluzione. Ma se ho scritto un metodo nel mio viewcontroller (es: func getEmail()) significa che non potrei chiamare quel metodo nel mio test. Come chiamare questi metodi nel target di test. – Madhumitha

+0

dovrebbe questo metodo essere un metodo pubblico? – Madhumitha

+0

@Madhumitha no, "@testable import" significa che è possibile utilizzare anche i metodi interni. Ma non privato. –