A good starting place is the assertThat() method that can now almost always be used in place of the traditional assertEquals(). assertThat() can be found in org.junit.Assert, but it defines using Hamcrest matchers in the signature:
static <T> void assertThat(T actual, org.hamcrest.Matcher<T> matcher).
junit和mockito都依赖hamcrest。
仅仅依赖junit包时的依赖树:
[INFO] \- junit:junit:jar:4.11:test
[INFO] \- org.hamcrest:hamcrest-core:jar:1.3:test
仅仅依赖mockito包时的依赖树:
[INFO] \- org.mockito:mockito-core:jar:1.9.5:compile
[INFO] +- org.hamcrest:hamcrest-core:jar:1.1:compile
[INFO] \- org.objenesis:objenesis:jar:1.0:compile
同时依赖二者时的依赖树:
如果同时引入junit和mockito后,他们之间共同的依赖取最高版本,如:hamcrest-core:jar:1.3和hamcrest-core:jar:1.1取前者:
[INFO] +- junit:junit:jar:4.11:test
[INFO] \- org.mockito:mockito-core:jar:1.9.5:compile
[INFO] +- org.hamcrest:hamcrest-core:jar:1.3:compile
[INFO] \- org.objenesis:objenesis:jar:1.0:compile
These are the core methods contained in org.hamcrest.CoreMatchers class they all just get used by means of a static import of org.hamcrest.CoreMatchers. They cover the following static methods in alphabetical order:
- allOf()
- any()
- anyOf()
- anything()
- describedAs()
- equalTo()
- instanceOf()
- is()
- not()
- notNullValue()
- nullValue()
- sameInstance()
Original:
http://edgibbs.com/junit-4-with-hamcrest/