2014-07-08 11 views
6

Ho un'applicazione Rails con un modello (seguendo un tutorial) e mi sono dimenticato di installare la gemma Rspec all'inizio. Ora l'ho fatto ma i file e le cartelle Spec non vengono visualizzati.Creazione di file rspec per modello esistente (principiante)

Ho letto quanto segue: How do I generate specs for existing controllers? e provato alcune righe di comando che hanno generato i file (am così Noob non posso trovare fuori ciò che ha effettivamente fatto)

Ma nessun nuovo file Spec!

Forse perché ho un modello e non un controller? Quale sarebbe la riga di comando corretta? In alternativa, posso crearli direttamente e con quale nome?

risposta

9

Prima di tutto cancellare la directory test quindi eseguire il seguente comando

rails generate rspec:install 

E se si utilizza bundler quindi utilizzare il seguente comando al posto

bundle exec rails generate rspec:install 

Occorre creare una directory spec nella vostra rotaie radice

In questa directory si dovrebbe trovare il seguente file tra le altre directory spec_helper.rb

Quindi è possibile modificare questo file se si ha bisogno di

E per eseguire i test si dovrebbe usare il seguente comando

rspec 

O il seguente se si utilizza bundler

bundle exec rspec 
28

eseguire nuovamente i generatori:

rails generate rspec:model MyModel

rails generate rspec:controller MyController

vi verrà chiesto se si desidera sovrascrivere i file esistenti. Rispondi come appropriato per la tua situazione. Probabilmente vuoi mantenere i tuoi file modello/controllore esistenti. Le nuove specifiche del controller dovrebbero finire (ad esempio) .

Oppure puoi semplicemente aggiungere i file spec manualmente. Consulta lo rspec-rails documentation per maggiori dettagli.

Raccomando anche di leggere lo Guide to Testing Rails Applications.

+0

Ho provato il primo e non ho trovato il generatore rspec: model. Sebbene Bundle Install restituisca 5 rspec gems (-mocks, -core .. e rspec (3.0.0)) – Maxence

+0

Prova la risposta di artmees: http://stackoverflow.com/a/24643039/17410 – zetetic

+0

OK sembra che avessi un riferimento a 'rspec' nel mio gemfile in quanto avevo bisogno di 'rspec-rails'. Ora ho entrambi i gems installati e rails: genera rspec: install ora funziona. Dovrei mantenere il riferimento sia a rspec (3.0.0) che a rspec-rails (3.0.1) nel gemfile? nessuna differenza tra loro? – Maxence

Problemi correlati