sembra che la classe hamcrest org.hamcrest.Matchers
è molto simile a org.hamcrest.CoreMatchers
(anche se sembra che Matchers
ha più). Perché dovrei scegliere di usare CoreMatchers
(a parte che sembra che la classe sia leggermente più piccola) e perché queste due classi sono così simili?Differenza tra Matchers hamcrest-biblioteca e CoreMatchers hamcrest-core
risposta
Gli accoppiamenti di Hamcrest sono suddivisi in diversi moduli. Il "nucleo" include gli abbinamenti di base e le classi astratte necessarie per costruire altri giocatori. org.hamcrest.CoreMatchers
include i metodi di fabbrica solo per questi abbinamenti. Gli altri matcher si trovano nel modulo "library" raggruppato in base ai tipi di oggetti che corrispondono e sono opzionali. org.hamcrest.Matchers
include entrambi i set di risultati.
Quale dovresti usare? Importa staticamente tutto da quest'ultimo senza alcun problema. Forse i tempi di compilazione potrebbero richiedere un po 'più di tempo, ma non è mai stato un problema per me. Ho messo questo nella parte superiore del mio test di unità, oltre alle importazioni JUnit:
import static org.hamcrest.MatcherAssert.*;
import static org.hamcrest.Matchers.*;
Questo dà la migliore leggibilità nei metodi di prova.
Se si utilizza Mockito un sacco (come faccio io), si potrebbe fare:
import org.mockito.Mockito;
o
static import org.mockito.Mockito.*;
e dal momento che la classe Mockito
estende la classe di Mockito Matchers
, allora si può finire con conflitti tra le classi Matchers o i loro metodi statici. Avere CoreMatchers mi consente di utilizzare CoreMatcher derivati da JUnit nella stessa classe di Mockito, senza doverli qualificare pienamente al loro punto di utilizzo.
- 1. personalizzati matchers gelsomino e goniometro
- 2. La differenza tra $ * e $ @
- 3. Differenza tra $ # e $ {# @}
- 4. Differenza tra. e #
- 5. MySQL: Differenza tra ",", "e"
- 6. Differenza tra "o" e "||"
- 7. Differenza tra unwrapObservable e()
- 8. Differenza tra oggetto e *?
- 9. Differenza tra "**/* /" e "** /"?
- 10. Differenza tra jquery e $
- 11. CMake: differenza tra $ {} e "$ {}"
- 12. Differenza tra ". +" E ". +?"
- 13. VBA: Differenza tra & e +
- 14. Differenza tra numpy.logical_and e &
- 15. Differenza tra | = e^= css
- 16. Differenza tra `% in%` e `` ==
- 17. Mockito matchers, scala value class e NullPointerException
- 18. ScalaTest - scrittura personalizzato matchers
- 19. Differenza tra Dizionario e Hashtable
- 20. Differenza tra SCM e SVN
- 21. differenza tra RDLC e SSRS
- 22. Differenza tra REMOTE_HOST e REMOTE_ADDR
- 23. Differenza tra "\ n" e Environment.NewLine
- 24. Differenza tra QSharedPointer e QSharedDataPointer?
- 25. Differenza tra toFixed() e toPrecision()?
- 26. Differenza tra strncpy e memcpy?
- 27. Differenza tra crittografia e hashing
- 28. Differenza tra Assembly.CreateInstance e Activator.CreateInstance?
- 29. Differenza tra coredata e sqlite
- 30. Differenza tra Html.RenderAction e Html.Action