2012-01-03 10 views
5

Chciałbym wykluczyć hashCode i equals z raportu koniczyny.
Przykład konfiguracji może być przyjemny.Jak wykluczyć metody (hashcode i equals) z raportu dotyczącego pokrycia koniczyny?

+3

Dlaczego nie chcesz, aby przetestować te metody? Myślę, że to pomyłka. – duffymo

+0

wymyśliłeś jakieś rozwiązania? byłoby miło, gdybyś mógł dzielić się – add9

+0

nie .... nadal nie ma rozwiązania, tak naprawdę zignorowałem ten problem na teraz .... –

Odpowiedz

1

trzeba zrobić dwa kroki:

1) określa metody konteksty w < koniczyna-setup > zadania zawierającego wyrażeń regularnych do metod, które mają być zgodne, na przykład:

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

2) określić, które metody konteksty zostają wykluczeni z raportu w koniczynie raporcie < > zadań

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

Więcej informacji:

3

Chciałbym wykluczyć hashCode i równa się z raportu koniczyny.

Proponuję z pełnym szacunkiem, aby przetestować te metody zamiast ich unikać. Poważne błędy mogą wystąpić, jeśli nie są zgodne ze specyfikacjami. Napotkałem również NPE i inne problemy w źle napisanych metodach hashCode i equals. Oto wielki związek z wielu sposobów, które można przetestować swoje metody:

How should one unit test the hashCode-equals contract?

Używamy następujące LocalEqualsHashCodeTest które można rozszerzyć za pomocą testów jednostkowych:

http://pastebin.com/L03fHAjv

Następnie należy zdefiniować metodę, którą należy zastosować, tj. createInstance(). ch zwraca instancję klasy i metodę createNotEqualInstance(), która zwraca inną instancję, która nie jest równa pierwszej.

+3

Nie pytałem, kiedy ma sens przetestować equals/hashcode, lub jak to zrobić ale jak je wykluczyć z koniczyny –

+3

To dobrze na MacerMiklas. Chciałem tylko dać ci inny sposób patrzenia na rzeczy. Mnóstwo odpowiedzi na SO nie odnosi się do konkretnego pytania, ale zachęcaj plakat, aby wyglądał inaczej. Faktem jest, że nie wiem, ale uważam, że nie należy ich testować. – Gray

+2

Zabawne, przyjechałem tutaj, szukając sposobu na wykluczenie z mojego kodu cobsergo raportu hashcode i jest równe, ale w rzeczywistości twój sposób (testowanie ich za pomocą tej klasy narzędziowej) wydaje się znacznie lepszy. Więc dziękuję! (Przy okazji, nie rozumiem, dlaczego OP był tak surowy o twojej odpowiedzi ...) – juancancela

Powiązane problemy