Scrivo da tempo le specifiche del modello e mi sto gradualmente spostando verso i test di integrazione. In questo momento, sto esaminando il modo migliore per testare l'output della mia dashboard ActiveAdmin , ma non sono sicuro quale sia il miglior tipo di specifica per il lavoro.
La mia bacheca contiene due tabelle che riassumono gli ordini di ieri e di oggi. In realtà, questo è un semplice caso in cui si afferma che la risposta contiene determinati contenuti dati alcuni ordini esistenti.
Finora, i tipi di specifiche che ho esaminato sono:
- controller : non sto testando il controller (AA già lo fa).
- visualizza : non sto testando un file di visualizzazione, quindi non è pertinente.
-
funzione : non mi sembra giusto perché non sto testando l'interazione dell'utente. Tuttavia, avere Capybara disponibile è molto utile perché mi piacerebbe usare i matcher come
has_content
. - richiesta : sembra la più rilevante perché sto testando il risultato di una singola richiesta piuttosto che l'interazione dell'utente. Tuttavia, RSpec Rails ha rimosso il supporto di Capybara per questo tipo di specifica.
In uno scenario "tradizionale" sarei in grado di testare i singoli componenti, vale a dire la vista e il controller, con i loro tipi di specifiche. Ma, in questo scenario, sto testando l'output di un plugin configurabile in cui non "possiedo" la parte del stack del controller di visualizzazione.
Il mio dilemma è: è accettabile scrivere specifiche di funzionalità che si limitano a testare l'output reso senza testare le interazioni dell'utente? O dovrei scrivere le specifiche delle richieste e rinunciare alla convenienza degli abbinamenti di Capybara? Sembra un problema 22 ma ci deve essere una buona ragione per rimuovere il supporto di Capybara dalle specifiche richieste.
Versioni pertinenti:
- Rails 4.1.6
- RSpec 3.1.0
- RSpec Rails 3.1.0
- Capybara 2.4.1