Sto creando alcune gemme che possono essere utilizzate all'interno di controller e viste Rails. Mi piacerebbe essere in grado di testare le gemme in modo indipendente. Ma non sono stato in grado di capire come creare un'istanza di Rails all'interno della gemma per verificare che la gemma funzioni all'interno di un'app Rails.Testing Ruby Gems sotto Rails
Preferisco decisamente utilizzare RSpec, ma probabilmente è possibile adattare una soluzione Test :: Unit o semplicemente utilizzare Test :: Unit.
Sarei interessato anche a soluzioni simili per i plugin Rails.
(Ho provato su Google, ma "rails gem testing" mi mostra le gemme che vengono utilizzate per il test, non come testare una gemma. Sono sicuro di aver visto un articolo o 2 su questo argomento.)
Questo è stato molto utile; Grazie! C'è un modo per mantenere caricato ActiveRecord (ala spec_server o spork) in modo che il caricamento di ActiveRecord e la creazione del database ogni volta non rallentino così tanto i miei test? – Chinasaur
Sono sicuro che c'è un modo per farlo. Se si utilizza l'archiviazione di file sqlite3, al posto dell'archiviazione della memoria come il mio plugin di convalida live, è possibile verificare se il file di database .sqlite3 esiste e non eseguire le migrazioni se lo fa ecc. –
Questo ha funzionato abbastanza bene per me, solo un paio di note: 1) Ho dovuto aggiungere il mio testing framework (rspec) e sqlite3 come dipendenze di sviluppo nel mio gemspec (e ovviamente rails come dipendenza di runtime), 2) Necessario per richiedere 'rails' e 'active_record' nel mio helper test come bene –