2012-12-06 10 views
8

In Xcode, alla fine del mio test di unità ottengo un risultato come questo:come scrivere errori previsti?

Test Suite 'Tutti i test' finito alle 2012-12-06 10:23:38 +0000

Eseguito 195 test, con 0 guasti (0 inaspettato) a 4.314 (4.485) secondi

mi piacerebbe scoprire come posso definire test con fallimenti attesi.

Normalmente con altri framework di test mi piace essere in grado di definire solo test unitari incompleti come promemoria del lavoro futuro che deve essere fatto. Questi test devono essere registrati solo come avvertenze, ma producono comunque un risultato finale "Success" se tutto il resto è OK

Guardando l'output di Xcode, presumo che ci sia un modo per ottenere lo stesso. Tuttavia ho problemi a trovare la macro giusta per contrassegnare i test incompleti/TODO. Inoltre sembra strano che i guasti normali sono riportate come:

Eseguito 95 prove, con 1 errore (0 inaspettato) in 2.314 (2.334) secondi

Quindi, qualsiasi fallimento del test asserzione sembra essere atteso. In tal caso sono persino confuso dal significato di (0 imprevisti) fallimenti.

Qualcuno potrebbe spiegare il significato di quella parte dei risultati del registro ?, come può essere utilizzato? come posso contrassegnare i test incompleti?

risposta

7

Un "errore imprevisto" è un'eccezione generata e non gestita. Al contrario di un possibile fallimento, che viene verificato da un'affermazione.

OCUnit non fornisce un modo per contrassegnare i test come "non eseguire". O commentale (il che lascia il rischio che il test non compaia più) o cambia il nome del metodo in modo che non abbia un prefisso "test". Ad esempio, rinominare testSomething in XXXtestSomething. (Rischia di dimenticarti di cambiarlo.)

+0

Grazie! ancora una volta di più, sei il grande eroe del cacao. La mia domanda è arrivata dopo un BDD completo al 100% in Ruby con rspec + cetriolo avventura. Ora capisco ogni sproloquio sul paesaggio TDD nei progetti di Cocoa. – SystematicFrank

+0

Mi piacerebbe se questo fosse documentato da qualche parte. Ma i test unitari di Apple lasciano molto a desiderare. – Step

1

Una soluzione al mio problema è usare la macro del preprocessore di avviso per contrassegnare i test di unità che devono essere completati. In questo modo, dopo aver compilato i test unitari, ho una buona panoramica del lavoro futuro che deve essere fatto. Questo è mostrato nel pannello degli avvisi, quindi è molto più attraente rispetto all'utilizzo dei commenti di TODO.

Tuttavia, preferirei avere un conteggio totale dei test incompleti e scoprire il significato del conteggio "0 inaspettato" dei miei rapporti di registro.

Problemi correlati