2011-01-07 51 views
8

Sono nuovo per i test in Rails. Ho deciso di imparare il Test Driven Development e quindi sto facendo delle ricerche su come farlo su un binario.Qual è il modo migliore per testare un'app per rails?

Ho iniziato con Test :: Unit e presto sono venuto a sapere che sono disponibili strumenti e framework di test migliori. Le cose che ho sentito parlare sono

  1. Shoulda
  2. Mocha
  3. Rspec
  4. cetriolo
  5. Factory Girl

Ora sono molto confuso su come andare avanti. Qual è la migliore combinazione di questi strumenti che ho bisogno di imparare? Inoltre dove posso trovare risorse per imparare questi?

sto costruendo l'applicazione in Rails 3.0

+0

Bella domanda. Speriamo di ottenere delle risposte davvero buone! – Zabba

+2

Raccogli un progetto reale di dimensioni decenti come Spree o qualcos'altro da http://www.opensourcerails.com/ e prova a capire i test nell'app. Dovresti anche esaminare le fonti effettive, ovviamente per capire alcuni dei test. IMHO, questo è un ottimo modo per migliorare anche in generale in Rails. – Zabba

risposta

1

Personalmente io uso cetriolo, RSpec e Factory Girl nelle mie applicazioni. Per quanto riguarda una risorsa, sto scrivendo un libro chiamato Rails 3 in Action che utilizza questi strumenti (e lo stesso Rails, ovviamente) per sviluppare un'applicazione.

17

Qual è il modo migliore per testare un'app per rails?

di prova prima.

Più seriamente, hai elencato una serie di strumenti diversi progettati per fare cose diverse.

  • Shoulda è un framework di test per l'esecuzione di test e un set di abbinamenti e asserzioni per test di scrittura.
  • Mocha è una libreria di derisione e stub.
  • Rspec è un framework di test che include strumenti di simulazione e abbinamenti.
  • Cucumber è un framework per la scrittura di test funzionali.
  • Factory Girl è un framework per la creazione degli oggetti del dominio che si utilizzano nei test.

Di quelli che Shoulda o Rspec potrebbero sostituire Test :: Unit mentre gli altri forniscono tutti gli strumenti per diverse aree di test. Quello di cui hai bisogno dipende da cosa pensi che renderà i test di scrittura più facili ed efficaci.

Per qualcuno utilizzato per testare le unità: test delle unità e interessati ad apprendere ulteriori strumenti, suggerirei quanto segue.

Se si dispone di un progetto esistente utilizzando Test :: Unit considerare l'aggiunta di beffardo di Mocha e sradicamento e vedere se questo consente di scrivere unit test mirati più facilmente. Se disponi già di dispositivi, prendi in considerazione l'idea di utilizzare Factory Girl per generare fabbriche mentre aggiungi nuovi oggetti del modello e di nuovo se riesci a trovare ciò che rende i tuoi test più facili da gestire e mantenere. Se hai già una solida serie di test unitari, considera già l'utilizzo di Cucumber per scrivere alcuni test funzionali di livello superiore per iniziare a catturare storie degli utenti nei test e testare l'app end to end.

Se stai iniziando un nuovo progetto, inizia con Rspec e Factory Girl. Rspec ti introdurrà a uno stile di test molto diverso rispetto a Test :: Unit ma continuerai a scrivere test di unità abbastanza familiari e fornirà stub, mock e matcher che ti permetteranno di immergerti nei test senza un'esplosione di troppe nuove gemme nel tuo progetto. Factory Girl ti offre un modo conveniente per creare oggetti di dominio come richiesto dai test. Tra questi due dovresti essere in grado di raccogliere un sacco di nuovi trucchi di test mentre stai ancora lavorando con il solito flusso di lavoro di test unitario.

+3

Eventuali tutorial disponibili per l'apprendimento di questi. Ho iniziato con rspec sul tuo suggerimento, ma ho avuto molti problemi a partire. Ho un'app esistente a cui ho bisogno di aggiungere Rspec. Come lo faccio? –

Problemi correlati