Ho un framework/modulo scritto in Objective-C e voglio testare le sue interfacce esterne e interni in Swift. Per questo ho creato un nuovo target di test nello stesso progetto, mirando al framework. Nel codice Swift posso importare il modulo e utilizzare le classi pubbliche senza problemi. Tuttavia, non riesco ad accedere alle classi interne nei miei test.Come testare gli interni di un framework Objective-C con Swift
ho provato la seguente:
- ho impostato la visibilità delle fonti interne al "progetto". Per quello che ho capito dovrebbe renderli disponibili al codice nello stesso progetto. Tuttavia, non funziona. O devo importarli in modo diverso allora?
- Ho anche provato la nuova funzione
@testable import
di Swift 2 in Xcode 7, ma non sembra funzionare (ancora) per i framework Objective-C.
Quello che mi è venuto è di importare manualmente tutte le fonti private che voglio testare nell'intestazione del bridging della destinazione del test. Che funzioni. Tuttavia, non sembra che sia il modo previsto per testare un framework Objective-C con Swift.
Qualche idea su come farlo meglio?
Frank: sono visibili internals aggiungendo istruzioni di importazione per le intestazioni nell'intestazione Bridging del progetto di test. E 'questo quello che stai facendo? Il mio problema principale è un po 'più esoterico del tuo. Riesco a vedere tutti i metodi interni purché non abbiano parametri. Hai visto qualcosa di simile? – JTango18
Hmm, questo è strano. Sì, li ho appena importati nell'intestazione di bridging del target di test e no, non ho ancora riscontrato problemi di questo tipo. Stai usando liste di argomenti variadici? Perché Swift non può convertire quei metodi. Inoltre, a volte solo il completamento automatico in Xcode non funziona, ma il codice viene comunque compilato. Hai provato? –
Per quanto ho capito, le intestazioni di bridging, questo è il modo per esporre le intestazioni private a swift, mentre le intestazioni pubbliche sono esposte tramite l'intestazione a ombrello del framework. –