Sto sviluppando con Grails. Poiché il framework eseguirà il bootstrap dei dati e un contesto primaverile completamente svuotato, trovo che scrivo molti test di integrazione per i servizi. Lasciatemi riformulare quello: trovo che non scrivo test unitari per servizi, solo test di integrazione. È una cattiva idea? L'unico inconveniente che vedo è che i miei test richiedono un po 'più di tempo per essere eseguiti.Test di integrazione e unità
Uso i test delle unità sui controller, come in un controller sto testando i vari flussi applicativi, i tipi di risultati, la logica di reindirizzamento, ecc. Ma la maggior parte dei test che scrivo sono test di integrazione. Questa sembra una rottura rispetto ai tradizionali test J2EE, in cui vengono scritti principalmente test di unità.
modifica - per essere chiari, non sto scrivendo test di integrazione perché il codice è così complicato che solo i test di integrazione faranno. Sto scrivendo test di integrazione perché è più facile testare tutto insieme, dal momento che il framework ti dà tanto. Faccio schifo a certe cose, come se un servizio collabori con l'acegi authenticationService, lo sbeffo. Inoltre, simulo ogni volta che interagiamo con un webservice, perché è necessario per ottenere un test eseguito senza un'impostazione speciale.
I test di integrazione possono essere più fragili dei test unitari. Se ti trovi a scrivere per lo più test di integrazione, prendi in considerazione il refactoring del tuo progetto in modo che possa essere sottoposto a test unitari più facilmente. Se il tuo codice è scritto, quindi è testabile, potresti scoprire che i test unitari sono più facili da scrivere rispetto ai test di integrazione e sono più stabili (meno adatti a interrompersi). I test di integrazione sono utili per testare le interazioni tra i componenti del sistema, ma non sempre forniscono una copertura del codice adeguata, quindi non sostituiscono i test unitari. –