Domanda

Sto appena iniziando a capire BDD e RSpec e una cosa con cui ho davvero problemi è capire quanto approfondito dovrei essere con i miei test.

Non capisco quanto i miei test debbano essere ben definiti per essere ancora utili ma non raddoppiare i tempi di sviluppo.

È solo una questione di preferenza? O c'è qualche standard generale per ciò che dovrebbe essere testato?

È stato utile?

Soluzione

Ci sono alcuni fattori da considerare qui.

  1. La copertura delle specifiche dovrebbe essere massima per le funzionalità più importanti e le cose che hanno maggiori probabilità di rompersi.
  2. Le specifiche devono esprimere l'intenzione dello sviluppatore. Non scrivere specifiche per cose banali che tu o qualcun altro potresti cambiare in seguito.
  3. Comportamento del test non implementato. Dovresti essere in grado di cambiare l'implementazione interna di una classe e comunque passare le specifiche. Ciò semplifica il refactoring.
  4. Ogni volta che si correggono i bug, si aggiungono specifiche per impedire la regressione del bug.

Trovo utile pensare a Test / Specifiche come a una rete di sicurezza. Voglio che una specifica fallisca se un altro sviluppatore (o me stesso) rompe qualcosa che ho impiegato del tempo per far funzionare. Non voglio che debbano passare molto tempo a cambiare le specifiche per cose che non contano davvero. Inoltre, non voglio impedire loro di migliorare l'applicazione a causa delle specifiche che testano cose che non erano importanti per me quando scrivevo il codice.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top