Ultimamente lo sto facendo molto per progetti client. I blocchi più grandi per me sembrano essere l'uso sfrenato di javascript in linea con o senza RJS. [Nota a margine: c'è un modo giusto e sbagliato per fare AJAX, e la maggior parte delle persone si comporta male). Generalmente uso cetriolo pesantemente con un po 'di rspec per strani test di unità.
Le variabili da considerare sono diverse, ma un buon punto di partenza è con alcuni test di unità per i modelli. Crea alcune fabbriche e verifica le convalide, insieme a qualsiasi comportamento personalizzato che ritieni debba essere verificato.
Se non ci sei o se hai già una suite di test unitari e vuoi aggiungere integrazione, la prossima domanda è la misura in cui stai facendo un sacco di javascript o RJS in linea. Se la tua app è molto "ajaxy", dovrai iniziare con il driver del selenio per il cetriolo, che è lento come melassa a febbraio, ma riuscirà a completare il lavoro. Una volta che avrai una serie di test che coprono tutte le funzionalità (o anche solo le cose importanti) per la tua applicazione, inizierei a refactoring del javascript per funzionare in modo discreto.
Un'altra direzione si potrebbe andare sarebbe per costruire rspecs aggiuntive per i controller e punti di vista, ma non lo faccio piace molto questo modello, come si sta entrando testare l'implementazione al posto del funzionalità.
La cosa importante da ricordare è che non tutto deve accadere durante la notte. Analizza i tuoi flussi di lavoro (ad esempio, effettuando l'accesso, esegui l'attività A, esegui l'attività B, ecc.) E determina quali coprono l'80% dei casi d'uso tipici. Provali prima. Quindi usa qualcosa come metric_fu o semplicemente rcov (o qualsiasi altro strumento di copertura) e trova le aree del tuo codice che sono logiche e non testate. Mi piace metric_fu per questo perché la suite di strumenti che esegue può fornire entrambe queste informazioni.
+1 perché mi stavo ponendo la stessa domanda –