Saturday 7 October 2017

Criteri Oggettivi Waitforexpectationswithtimeout


Ho avuto lo stesso problema. La correzione di me sembrava aumentare l'intervallo di timeout. All'inizio ho avuto un intervallo di timeout di 1 e aumentato a 5 solo per essere al sicuro. Sembra funzionare bene ora. Im non sicuro per quanto tempo la chiamata asincrona prende, o se si può permettere un intervallo di timeout più lungo di 1, ma vale la pena un colpo. risposto 24 novembre 14 a 20:14 ho provato questo, in 50 casi ha aiutato. Si può vedere nel codice che ho postato asincrona è solo dispatchafter che attende 0.5s. Alla fine sto niling l'attesa dopo il blocco di attesa e facendo tutto afferma anche dopo il blocco di attesa. Così, non succede nulla durante l'attesa, ma adempiere. ndash Micha Hernas 25 novembre 14 a 11:18 Swift ha difficoltà particolare per mostrare il corretto eccezione punto di rottura quando le chiusure sono presenti nello stesso ambito. Ho visto lo stesso problema in un XCTestCase che ha usato dispatchafter e anche attraverso il punto di interruzione eccezione è stata la stessa linea waitForExpectationsWithTimeout il banco di prova è stato blocca a causa di un abbattuta su un oggetto nullo. So che questo non è il tuo caso, ma ogni volta che questo accade suggerisco di rimuovere le dichiarazioni di una riga alla volta e l'esecuzione del test dopo ogni rimozione. Se il test non va in crash, è stato identificato il colpevole. Questo è, purtroppo, l'opzione al momento della stesura di questo meglio ogni volta che Swift mostra un punto di interruzione un'eccezione su una linea che non ha senso, in particolare la linea infame 0 di una classe che si potrebbe vedere in strumenti di reporting incidente. Fateci sapere se avete capito il tuo crash. Asynchronous Unit Testing in Xcode sei anni scorso ho descritto un metodo per implementare asincrono unit testing in Xcode 5. Let8217s ricordare a noi stessi il problema con unit testing asincrono. Molti API sulla piattaforma iOS si sono asincrone. Hanno uso invocazioni di callback per segnalare quando they8217re completata, e questi possono funzionare in diverse code. Essi possono effettuare richieste di rete o scrivere sul file system locale. Questi possono essere attività che richiede tempo che hanno bisogno di essere eseguito in background. Questo crea un problema perché i test si gestiscono in modo sincrono. Così i nostri test hanno bisogno di aspettare fino a quando non vengono informati di quando l'operazione è stata completata l'esecuzione. Ho proposto un metodo che prevedeva l'impostazione di un flag booleano nella prova di unità e loop in un ciclo while () fino alla bandiera è stato impostato su false, permettendo il test per completare correttamente. Questo metodo ha funzionato la maggior parte del tempo, ma non sono mai stato felice con lui, considerandolo come un po 'di kludge. In questo post ho concluso: ho ancora le mie riserve su questa tecnica, e Im ancora cercando la soluzione perfetta per asincrono unit testing in Xcode. Si potrebbe pensare che Apple potrebbe aver fornito una soluzione in XCTest, forse simile alla realizzazione di GHUnit. Here8217s quanto la versione Objective-C di un ossa nude esempio unit test asincrono in Xcode 5 utilizzando il vecchio metodo assomiglia: Risposte Recenti Risposte più popolari Categorie

No comments:

Post a Comment