2012-06-07 13 views

Odpowiedz

37

Matowniki Hamcrest są podzielone na kilka modułów. "Rdzeń" zawiera najprostsze dopasowania i klasy abstrakcyjne wymagane do budowania innych dopasowań. org.hamcrest.CoreMatchers zawiera fabryczne metody dla tych właśnie matchers. Pozostałe elementy dopasowujące są w module "biblioteka" pogrupowane według typów dopasowanych obiektów i są opcjonalne. org.hamcrest.Matchers obejmuje oba zestawy dopasowań.

Jakich użyć? Statycznie importuję wszystko z tego ostatniego bez żadnych problemów. Być może czasy kompilacji mogą potrwać nieco dłużej, ale to nigdy nie było problemem dla mnie. Ja to na szczycie moich testów jednostkowych oprócz importu JUnit:

import static org.hamcrest.MatcherAssert.*; 
import static org.hamcrest.Matchers.*; 

Daje najlepszą czytelność w metodach badawczych.

9

Jeśli używasz Mockito dużo (jak ja), można robić:

import org.mockito.Mockito; 

lub

static import org.mockito.Mockito.*; 

a ponieważ klasa Mockito rozciąga Matchers klasę Mockito, wtedy można zakończyć konfliktami między klasami Matchers lub ich statycznymi metodami. Posiadanie CoreMatchers pozwala mi używać CoreMatchersów opartych na JUnit w tej samej klasie co Mockito, bez konieczności pełnej kwalifikacji w punkcie ich użycia.