Quindi è l'unico modo per deridere gli oggetti in modo che l'eccezione possa essere generata?
Credo che sarà il modo più semplice, ma si potrebbe anche fare uno stub (ovvero un oggetto che estende l'oggetto reale e costringe a comportarsi come un'eccezione ogni volta). O potresti usare AOP, ma penso che usare una libreria come easymock o jmock sarà la via più facile da percorrere.
Sembra un po 'inutile. Forse è meglio accettare semplicemente di non ottenere una copertura del 100% del codice?
Ogni volta che parlo di questo argomento mi piace spostare la mentalità delle persone dal preoccuparsi di una certa percentuale di copertura, e invece di usare la percentuale come strumento per renderti uno sviluppatore migliore. In altre parole, avere una copertura del 100% o una copertura del 50% non significa necessariamente che il tuo codice sia ben scritto o addirittura funzionante, ma utilizzare la copertura del codice come indicatore chiave quando stai sviluppando il codice, se ti stai rallentando durante la scrittura di test, ecc ... una buona idea.
La mia opinione personale sulla tua domanda è che se la tua applicazione è logica, allora vale la pena di provarla. Quindi se stai prendendo ed eccezione e risintonizzi il metodo falso, dovresti fare un test per questo. Se si sta rilevando l'eccezione e lo si avvolge in un'altra eccezione, è necessario verificarlo. Se stai rilevando l'eccezione e non fai nulla, allora questo dovrebbe essere un odore di codice che deve essere corretto perché ciò può portare a tutti i tipi di effetti collaterali ingestibili.
Per quanto riguarda il 100% non lo fa, direi di sì non ne vale la pena. Dovresti trovare un buon livello di comfort per te (forse l'80%, forse il 90%) e seguirlo. Ma non lo baserei sui tipi di test (come la logica delle eccezioni di test), dovrebbe basarsi solo sulla copertura totale e visto come un indicatore che non stai scrivendo i tuoi test quando esegui il commit del codice.
fonte
2010-05-21 12:29:46
Gli ultimi punti percentuali di solito non valgono la pena (tranne ovviamente se la funzione che implementano è un requisito fondamentale, allora si è iniziato con i punti percentuali sbagliati ;-)). –
Il codice di gestione delle eccezioni è solitamente pieno di bug, vale la pena di provarlo. – Peli
Devo essere d'accordo con Peli, stiamo facendo il 100% e abbiamo trovato un sacco di bug possibili. – roundcrisis