View Full Version : [Ruby/Rails] Test framework: quale?
Ciao a tutti, devo sviluppare un'applicazione web con Rails e mi chiedevo quali opzioni ci siano come framwork per i test. Lo chiedo perché ho visto che di default Rails usa Minitest ma alcuni tutorial sul web fanno usare Rspec. Mi sapreste fare una panoramica sulle possibilità? Grazie :D
E' più una questione di gusti che tecnica
Minitest è molto simile a junit, di fatto è libreria di testing piuttosto leggero e semplice. E' la scelta preferita da DHH
Rspec invece è un vero e proprio framework di test che sfrutta un proprio DSL per la definizione degli esempi
Le differenze maggiori stanno a livello di organizzazione logica e quanto scrivi.
Con minitest hai una situazione classica con il tipica struttura xUnit, mentre con rspec hai una organizzazione gerarchica meglio definita, possibilità di riusare in modo semplice esempi tra classi e più espressività in generale, che però paghi con una maggiore complessità e nei casi più semplici con anche molto più codice di test da scrivere.
L'applicazione Rails su cui sto lavorando io si appoggia su minitest + rr per i mock: ho fatto questa scelta quando ho iniziato il progetto perchè minitest è più che sufficiente, hai tutto quello che ti serve già integrato e non avevo tempo di capire anche come funziona rspec.
Al contrario per il framework per sistemi di supervisione che stiamo sviluppando adesso abbiamo scelto rspec e per il mio collega non è stato traumatico, pur essendo la sua prima volta con ruby.
Insomma, sta più ai tuoi gusti e background secondo me: se conosci già Rails e Ruby e l'applicazione che stai costruendo ha molta logica di alto livello allora valuta rspec, altrimenti se sei alle prime armi con Rails e Ruby o se la tua applicazione ha molto CRUD e logiche relativamente semplici usa pure minitest che in fondo non ti perdi nulla.
Giusto per darti un'idea a spanne, la mia applicazione rails ha circa 60 tabelle nel db, un centinaio tra modelli ActiveRecord e servizi (non ricordo quanti controller) per un totale di circa 9000 linee di codice Ruby + altrettante per i test (escluso quindi html o js) e non ho ancora rimpianto la scelta di minitest
Grazie, molto esaustivo. Ora ci penso un attimo. Comunque anche una delle due applicazioni che devo sviluppare io è all'incirca delle dimensioni di quella che mi hai descritto ;)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.