Devo scrivere funzionalità o richiedere specifiche?

1

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
posta tristanm 18.09.2014 - 00:38
fonte

2 risposte

3

Le richieste di specifiche sono cadute in disgrazia, e per una buona ragione.

Le specifiche delle funzionalità sono probabilmente la strada da percorrere per testare questo tipo di funzionalità. C'è un'interazione dell'utente: stai visitando o navigando verso una pagina nella tua app.

Tuttavia, se questo è tutto solo codice ActiveAdmin, perché lo stai provando? Forse una prova di fumo solo per colpire un URL e assicurarsi che non esploda, ma non vorrei entrare nel merito di testare affatto AA.

    
risposta data 18.09.2014 - 03:03
fonte
0

Se la domanda è se testare, dipende da vari fattori, tra cui, ad esempio:

  • quanto è critico il fatto che le nuove distribuzioni funzionino senza incidenti (ad es. pubblico, molti utenti, generazione di entrate),
  • la quantità di personalizzazione è nelle registrazioni delle risorse (ad esempio azioni membro e raccolta, has_many / has_one relazioni, moduli personalizzati, uso di decoratori, autorizzazione di accesso non banale, ecc.) e
  • tempo e budget disponibili rispetto ad altre priorità (ad es. avvio iniziale della fase iniziale e call center aziendale consolidato)
  • durata della vita prevista e necessità di manutenzione futura (ad es. avranno più sviluppatori, avranno requisiti aziendali in continua evoluzione)

Spero che ti aiuti.

    
risposta data 16.03.2018 - 16:17
fonte

Leggi altre domande sui tag