28 votes

Différence entre Hamcrest-library Matchers et hamcrest-core CoreMatchers

Il semble que la classe hamcrest org.hamcrest.Matchers est très similaire à org.hamcrest.CoreMatchers (bien qu'il ressemble à Matchers a plus). Pourquoi devrais-je choisir d'utiliser CoreMatchers (à part cela, la classe est légèrement plus petite), et pourquoi ces deux classes sont-elles si similaires?

24voto

David Harkness Points 16674

Le Hamcrest les allumettes sont divisés en plusieurs modules. La "base" comprend la plus grande base de rapprochement et de classes abstraites nécessaires à la construction d'autres de rapprochement. org.hamcrest.CoreMatchers comprend l'usine de méthodes pour ce rapprochement. Les autres les allumettes sont dans la "bibliothèque" module regroupés selon les types d'objets qu'ils correspondent et sont facultatifs. org.hamcrest.Matchers comprend deux ensembles de rapprochement.

Qui devriez-vous utiliser? Je statiquement importer tout le contenu de ce dernier sans aucun problème. Peut-être le temps de compilation peut prendre un peu plus longtemps, mais qui n'a jamais été un problème pour moi. J'ai mis en haut de mes tests d'unité en plus de la JUnit importations:

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

Ce qui donne la meilleure lisibilité dans les méthodes de test.

2voto

Kevin Welker Points 2990

Si vous utilisez beaucoup Mockito (comme moi), vous faites peut-être:

 import org.mockito.Mockito;
 

ou

 static import org.mockito.Mockito.*;
 

et depuis le Mockito classe s'étend de Mockito Matchers classe, alors vous pouvez finir avec les conflits entre soit les classes Matchers ou leurs méthodes statiques. Avoir CoreMatchers me permet d'utiliser des CoreMatchers dérivés de JUnit dans la même classe que Mockito, sans avoir à les qualifier complètement à leur point d'utilisation.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X