Sto cercando un modo pulito per utilizzare JBuilder e testare l'output di JSON con RSpec. Il metodo popolare per il test JSON consiste nell'implementare il metodo as_json, quindi in RSpec confrontare l'oggetto ricevuto con il metodo object.to_json. Ma una grande ragione per cui sto usando JBuilder è che non voglio tutti gli attributi che to_json sputa; quindi questo rompe il confronto.Come usare RSpec con JBuilder?
Attualmente con JBuilder sto avendo a che fare le seguenti operazioni per verificare i risultati RSpec:
1) Creare un oggetto di fabbrica: @venue
2) Creazione di un hash dentro la mia prova RSpec che contiene il "atteso" stringa JSON indietro
@expected => {:id => @venue.id,:name=>@venue.name..........}
2) Confronta la stringa @expected al results.response.body che viene restituito dalla chiamata JSON.
Questo sembra semplice, tranne ho oggetti sono stati resi con 15+ attributi, e costruendo la stringa hash @expected è ingombrante e molto fragile. C'è un modo migliore per farlo?
Ho fatto esattamente questo. Non riesco a pensare a un modo migliore per farlo. Ho costruito un hash e applicato '.to_json' su' @ expected'. Una cosa che accelero e renderla meno fragile. Forse a costo di precisione? Sta per costruire i miei hash con collect e map. Immagino che la natura specifica della creazione di un modello personalizzato con qualsiasi libreria di costruzione di stringhe JSON richieda di scrivere un test che corrisponda alle specifiche del lavoro che fai ..:/ – stuartc
@beeudoublez sei in grado di utilizzare RSpec per testare le viste di jbuilder? Ho problemi a ottenere rspec per passare oggetti alla vista in modo che il gestore jbuilder possa costruire il JSON. Avete un esempio di lavoro sul file '* _spec.rb'? – sorens