TBD
TBD
- AllOf/AnyOf: Pass the matchers to constructor using varargs (Issue #245)
- Matchers.anyOf: Fix generic bounds compatibility for JDK 11 (Issue #256, Issue #257)
- AssertionError message is unhelpful when match fails for byte type (Issue #254, Issue #255)
- Use platform specific line breaks (PR #267)
- Build now checks for consistent use of spaces (PR #217)
- Fix compatibility issue for development with Android D8 (Issue #246)
- Fix typo in license name (Issue #247)
- 1.3 compatible constructors for string matchers (Issue #259, Issue #260)
- Fix for split packages with Java 9 modules (Issue #269, PR #270)
After a long hiatus without releases, this version simplifies the packaging of
Hamcrest into a single jar: hamcrest-<version>.jar
. Other big changes include
Java 9 module compatibility, migrating the code repository from Google Code to
GitHub, along with numerous other new features, improvements and bug fixes.
- The way that the project is packaged has changed. This may cause problems with correctly upgrading transitive dependencies. Refer to the Hamcrest Distributables documentation for more information, and in particular, Upgrading from Hamcrest 1.x
org.hamcrest.Factory
has been removed. This was only used in old implementations of the hamcrest build toolchain, and can safely be deleted from client code without any effect.
- Documentation updates
- Several JavaDoc improvements and corrections
- Fix JavaDoc examples
- Upgraded to Java 7
- Build with Gradle
- Publish a single jar
hamcrest-2.1.jar
- Publish pom-only artifacts for
hamcrest-core
andhamcrest-library
. - Add implementation for CharSequence length matcher
- Fix for TypeSafeDiagnosingMatcher can't detect generic types for subclass
- Make Hamcrest an OSGI bundle
- Add StringRegularExpression matcher
- Fix StringContainsInOrder to detect if a repeated pattern is missing
- Add ArrayAsIterableMatcher
- Fix description for IsEqualIgnoringCase
- Removed deprecated methods from previous release
- Improve mismatch description of hasItem/hasItems
- General improvements to mismatch descriptions
- Deprecated several matcher factory methods of the for "isXyz"
- Fix GH issue #75 - address doclint errors reported in JDK 1.8
- Fix GH issue #69 - Iterable contains in order is null-safe
- Fix GH issue #59 - added equalToObject() (i.e. unchecked) method
- Fix GH issue #25 - arrayContaining(null, null) cause NullPointerException
- Fix GH issue #36 - string matching on regular expressions
- Fix GH issue #8 - isCloseTo() shows wrong delta in mismatch description
- Fix GH issue #59 - add untyped version of equalTo, named equalToObject
- Fix GC issue #131 - Implement IsEmptyMap, IsMapWithSize
- Fix GC issue #187 - IsArray.describeMismatchSafely() should use Matcher.describeMismatch
- Fix GC issue #155 - Add Matcher implementation for files
- Fix GC issue #69 - fix NPE in IsIterableContainingInOrder
- Introduce Condition class to ease the implementation of multi-step matches
- Upgrade qdox (included in the generator) to the latest stable version
- Correct inadvertent deprecation of the Is.isA factory method
- Fix issue #179 - AllOf does not output mismatch description
- Fix issue #177 - Introduced closeTo matcher for BigDecimals
- Fix issue #152 - Factory classes missing from matchers.xml
- Fix issue #144 - OrderingComparison doesn't describe mismatch of comparables that return values other than (-1,0,1)
- Fix issue #134 - DescribedAs does not delegate describeMismatch
- Fix issue #106 - deprecation warning when writing custom matchers
- Fix issue #101 - Added theInstance alias for sameInstance factory method
- Added FeatureMatcher
- distinguish between instanceOf() and any()
- Added mismatch reporting
- Added WithSamePropertyValuesAs matcher
- Moved any() from IsAnything to IsInstanceOf. It now checks the type of the matched object
- Moved MatcherAssert from integration to core
- Tightened up generics.
- Added IsMapContainingKey and IsMapContainingValue matchers to resolve a generics bug in hasKey and hasValue static factories previously declared in IsMapContaining (ngd)
- Added IsCollectionOnlyContaining and IsArrayOnlyContaining which matches collections (and arrays) where all match a given matcher. E.g onlyContains(3,4,5) or onlyContains(lessThan(9))
- text module moved to separate project, hamcrest-text-patterns
- added more colection matchers: xContainingInAnyOrder, xContainingInOrder, xWithSize
- new text Matcher: IsEmptyString
- hamcrest generator uses method return type
- Hamcrest Generator now includes JavaDoc and parameter names in generated code by using QDox to parse the source code.
- Created hamcrest-core.jar (and removed hamcrest-api.jar). Moved core set of matchers (and, eq, not, etc) to this package to make it more practical for external libraries to embed Hamcrest.
- Created CoreMatchers (static import sugar) in hamcrest-core.jar.
- StringBuilder can use any Appendable (not just StringBuffer).
- Added sensible toString() method to BaseMatcher.
- Created StringDescription.asString() alias (because toString() caused issues with static imports).
- Relaxed isInstanceOf() matcher generic type so it can be used on any kind of object. e.g. assertThat(someUnknownObject, isInstanceOf(String.class));
- Added any(Class), null(Class) and notNull(Class) matchers, which returns Matcher. Helpful when the compiler struggles with type inference.
- Modified anyOf() and allOf() to accept mixed-types.
- TypeSafeMatcher.matchesSafely() is now public.
- Generator recognizes @Factory methods that return subclass of Matcher. (Fix by David Saff)
Initial release.
- Support for namespaces in HasXPath
- Bug fix for matching empty elements with HasXPath