Domanda

Quali framework esistono per testare l'unità del codice Objective-C?Vorrei un framework che si integri bene con Apple Xcode.

È stato utile?

Soluzione

Xcode include XCTest, che è simile a OCUnit, un framework di unit test Objective-C e offre il supporto completo per l'esecuzione di unit test basati su XCTest come parte del processo di compilazione del progetto.Il supporto per i test unitari di Xcode è descritto nel file Panoramica di Xcode:Utilizzo dei test unitari.

Nei giorni di Xcode 2, ho scritto una serie di post sul blog su come eseguire alcune attività comuni con gli unit test di Xcode:

Nonostante utilizzi OCUnit anziché XCTest, i concetti sono sostanzialmente gli stessi.

Infine, ho anche scritto alcuni post su come scrivere test per le interfacce utente Cocoa;il modo in cui è strutturato Cocoa lo rende relativamente semplice, perché nella maggior parte dei casi non è necessario far girare un ciclo di eventi o qualcosa del genere.

Ciò consente di eseguire uno sviluppo basato sui test non solo per il codice a livello di modello, ma anche per il codice a livello di controller e persino a livello di visualizzazione.

Altri suggerimenti

Guardare Unità GH di Gabriel Handford:

"Gli obiettivi di GHUnit sono:

Esegue i test unitari all'interno di Xcode, consentendo di utilizzare completamente il debugger Xcode.Una semplice GUI per aiutarti a visualizzare i tuoi test.Mostra tracce dello stack.Sii instabile come framework (per app di cacao) con una configurazione target semplice (o meno);o facile da impacchettare nel progetto del tuo iPhone. "

Ho iniziato a utilizzare il banco di prova di Google Toolbox per iPhone e per me ha funzionato alla grande.

google-toolbox-per-mac

Guardare OCUnit.La rete di sviluppatori di Apple ha un'ottima introduzione.

Tieni presente che il progetto Google Toolbox per Mac (GTM) estende/potenzia semplicemente il framework SenTestingKit di Apple (che è esso stesso basato su OCUnit).Come si dice sul sito del progetto:

GTM ha diversi miglioramenti per lo standard SentestKit che consente di eseguire test unitari UI, test automatizzati di unità di rilegatura, monitoraggio dei registri e test unitari su iPhone, nonché strumenti per eseguire test statici e dinamici del codice.

Tieni presente il seguente commento sul test dell'interfaccia utente:

GTM ha un ampio supporto per i test delle unità di interfaccia utente.Supporta testare sia l'imaging che o lo stato interno di quasi tutti gli oggetti UI standard di cacao/UIKIT e ti rende facile estendere questo supporto ai tuoi oggetti dell'interfaccia utente.

Vedi il loro "Verifica del codice e test unitario" pagina per istruzioni su come utilizzarlo.

Sono giunto alla conclusione che GHUnit è il framework di test più avanzato per Objective-C.Ho fatto un arrotondare di testing dei framework sul mio blog.È il più flessibile in termini di implementazione (iphone, simulatore o mac os nativo) e di affermazione delle capacità.Poiché è basato su GTM, eredita tutti i vantaggi di GTM rispetto a SenTestingKit ma ne aggiunge anche molto di più.Un altro vantaggio è che viene mantenuto molto attivamente.

Ho compiuto sforzi per integrarmi OCMock in GHUnit, funziona alla grande!.Puoi ottenere il codice github.

Mi rendo conto che questa è una vecchia domanda, ma se preferisci i test in stile BDD (rspec, Jasmine, ecc.) rispetto ai test in stile xUnit (Test::Unit, JSUnit, JUnit, ecc.), allora potresti prendere in considerazione il check-out Cedro.Cedar porta i test in stile BDD su Objective-C, ora che il linguaggio supporta le chiusure.

Utilizziamo felicemente Cedar per i nostri progetti iOS su Laboratori cruciali, e stiamo lavorando attivamente per migliorarlo.Eventuali feedback o suggerimenti sono benvenuti all'indirizzo cedar-discuss@googlegroups.com

Consiglierei anche di utilizzare strumenti di copertura per vedere quali parti del codice sono coperte da unit test e quali no.La copertura di base della linea e del codice filiale può essere generata con GCOV attrezzo.Se vuoi generare dei bei rapporti sulla copertura HTML, ci sono LCOV E ZCOV che fanno proprio questo.

Raccomando gh-unit, ha una bella GUI per i risultati dei test.

http://github.com/gabriel/gh-unit/tree/master

IL Supporto unit test in bundle all'interno di xcode (per la sua semplice configurazione) combinato con ocrunner (per qualche bontà di autotest/ringhio) è attualmente la mia configurazione preferita di test unitario Obj-C.

Sen:te (il creatore del framework di test incluso con Xcode) spiega come utilizzare OCUnit con un progetto iPhone: test-unità-iphone-ipad-semplice.

Matt Gallagher di Cocoa with Love ha un ottimo articolo sui test unitari.

Suggerirei di esaminare Kiwi, un framework di test BDD open source per iOS:kiwi

Dai un'occhiata al WIKI del progetto per iniziare o scarica il libro di Daniel Steinberg "Test Driving iOS Development with Kiwi"test-drive-sviluppo-ios

Utilizzo SimpleUnitTest che funziona con le librerie di iPhone e iPad.

http://cbess.blogspot.com/2010/05/simple-iphone-ipad-unit-test.html

Viene fornito con un modello Xcode di test unitario per aggiungere facilmente una classe di test unitario.Avvolge GTM.

Puoi letteralmente inserirlo in un progetto attivo e iniziare ad aggiungere test unitari entro 3 minuti (o meno).

Spettacolo è un moderno framework TDD (Test Driven Development)/BDD (Behavior Driven Development) che funziona su XCTest.Supporta test unitari per progetti iOS e Mac OS X.

Spero che tu possa usare "SenTestKit", da cui puoi testare ogni singolo metodo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top