2012-01-03 12 views
5

Desidero escludere hashCode e equals dal rapporto del trifoglio.
Qualche esempio di configurazione sarebbe bello.Come posso escludere metodi (codice hash e uguali) dal rapporto di copertura del trifoglio?

+3

perché non si vuole mettere alla prova questi metodi? Penso che sia un errore. – duffymo

+0

hai trovato qualche soluzione per questo? sarebbe davvero bello se tu potessi condividere – add9

+0

no .... ancora nessuna soluzione, in realtà ho ignorato questo problema per ora .... –

risposta

1

quello che dovete fare due passi:

1) Definire metodo contesti nel < trifoglio-setup > compito contenente le espressioni regolari per i metodi che si desidera abbinare, per esempio:

<clover-setup ...> 
    <methodContext name="equals" regexp="public boolean equals\(.*\)"/> 
    <methodContext name="hashCode" regexp="public int hashCode\(\)"/> 
</clover-setup> 

2) Definire quali contesti il ​​metodo deve essere escluso dal rapporto nel < trifoglio-report > compito

<clover-report> 
    <current outfile="clover_html" title="My Coverage"> 
    <format type="html" filter="equals,hashCode"/> 
    </current> 

Maggiori informazioni:

3

Vorrei escludere hashCode ed equals dal report del trifoglio.

Vorrei rispettosamente suggerire di testare effettivamente questi metodi invece di evitarli. Si possono verificare errori gravi se non sono coerenti con le specifiche. Ho riscontrato problemi con NPE e altri problemi nei metodi scritti male hashCode e equals. Ecco una grande legame con un certo numero di modi in cui è possibile testare i vostri metodi:

How should one unit test the hashCode-equals contract?

Noi utilizzare il seguente LocalEqualsHashCodeTest che può essere prorogato di un test di unità:

http://pastebin.com/L03fHAjv

Si definisce quindi un metodo createInstance() whi ch restituisce un'istanza della classe e un metodo createNotEqualInstance() che restituisce un'altra istanza che non è uguale alla prima.

+3

Non ho chiesto quando ha senso testare equals/hashcode, o come fare ma come escluderli dal trifoglio –

+3

Va bene @MaciejMiklas. Volevo solo darti un modo diverso di guardare le cose. Tonnellate di risposte su SO non rispondono alla domanda specifica ma incoraggiano il poster a guardarlo in modo diverso. Il fatto è che non lo so, ma ritengo una cattiva pratica non metterli alla prova. – Gray

+2

Divertente, sono venuto qui cercando un modo per escludere dal mio sito di cobertura un rapporto di hashcode e uguali, ma in realtà il tuo modo (testarli con quella classe di utilità) sembra molto meglio. Quindi grazie! (a proposito, non capisco perché l'OP era così dura per la tua risposta ...) – juancancela

Problemi correlati