Revision history for hmock
0.5.1.2 -- 2023-11-28
- Version bounds now allow GHC 9.6 and 9.8
- Fix Quasi instance warning for GHC 9.4
- Bumped dependency version upper bounds
0.5.1.1 -- 2022-09-18
- Version bounds now allow GHC 9.4
0.5.1.0 -- 2021-09-25
- HMock works with more classes with superclass constraints.
- Classes with default methods are now fully mockable.
- Builds with GHC 9.2.1
- Fixes for GHC 8.4 and 8.6
0.5.0.0 -- 2021-09-25
- HMock now depends on
Predicate from the explainable-predicates package.
0.4.0.0 -- 2021-08-22
- Dramatically simplified the Template Haskell API.
makeMockable now expects a Type instead of a Name. Use [t|MyClass|].
- Most other variants of
makeMockable have been removed. Use
makeMockableWithOptions instead.
makeMockable will now detect when instances already exist and won't
redefine them.
makeMockable [t|MyClass ConcreteType|] now defines Mockable and
MockableBase for any MyClass type. Only MockT instances use the
concrete type. In some cases, you may need to add type annotations to your
expectations.
MockSetup can now add expectations.
- Added a lot more configuration for severity of faults:
setAmbiguityCheck can now set to ignore, warning, or error.
- Added
setUninterestingActionCheck for actions with no expectations.
- Added
setUnexpectedActionCheck for actions that don't match expectations.
- Added
setUnmetExpectationCheck for expectations that aren't met.
- Predicates have undergone major updates.
- Predicates now show more detailed messages when they fail.
- New
keys and values predicates accept any child predicate.
- Removed
containsKey, containsEntry, keysAre, and entriesAre
- Instead of
containsEntry or entriesAre, use contains or
unorderedElemsAre with zipP.
- New predicates:
positive, negative, nonPositive, nonNegative.
0.3.0.0 -- 2021-06-30
- Methods with polymorphic return types can now be mocked if the return type has
a
Typeable constraint.
- Added
whenever to associate a side effect to a method.
- Added
WholeMethodMatcher to match entire method args at once.
allowUnexpected no longer changes the default for expected calls.
0.2.0.0 -- 2021-06-24
- Added ambiguity checking.
- This is an optional feature, which is off by default.
- To make it easier to avoid ambiguity, there is now an
allowUnexpected that
- causes unexpected calls to be ignored and optionally provide a response, but
doesn't conflict with expectations that override it. Ambiuguous uses of
expectAny can often be replaced with allowUnexpected.
- Restricted mockable setup to defaults to avoid race conditions.
- Setup handlers now run in the
MockSetup monad.
- Adding expectations from setup is no longer allowed. However, you can use
allowUnexpected to allow unexpected calls.
- Added
nestMockT and withNestedMockT to the API.
- Exported smaller modules to make selective imports easier.
0.1.0.1 -- 2021-06-20
- Fixed a bad dependency that broke some GHC versions.
0.1.0.0 -- 2021-06-20
- First version. Released on an unsuspecting world.