I can't understand how JUnit 4.8 should work with Hamcrest matchers. There are some matchers defined inside junit-4.8.jar
in org.hamcrest.CoreMatchers
. At the same time there are some other matchers in hamcrest-all-1.1.jar
in org.hamcrest.Matchers
. So, where to go? Shall I explicitly include hamcrest JAR into the project and ignore matchers provided by JUnit?
In particular, I'm interested in empty()
matcher and can't find it in any of these jars. I need something else? :)
And a philosophical question: why JUnit included org.hamcrest
package into its own distribution instead of encouraging us to use original hamcrest library?
If you're using a Hamcrest with a version greater or equal than 1.2, then you should use the junit-dep.jar
. This jar has no Hamcrest classes and therefore you avoid classloading problems.
Since JUnit 4.11 the junit.jar
itself has no Hamcrest classes. There is no need for junit-dep.jar
anymore.