This project adheres to Semantic Versioning. See here for the change log format.
- fix exception handling issue occurring with clojure 1.10 and above
- bump libs
- add
every-checker
toclj-kondo
config
- POTENTIALLY BREAKING constrain
provided
to disallow mockingclojure.core/str
since it causes issues with the Midje internals. Addresses #481
- bump library dependencies
- fix typos and missing entries in
clj-kondo
config
-
Allow setting midje config via java system properties (#483)
For example:
(System/setProperty "midje.check-after-creation" "false")
can now be done instead of(change-defaults :check-after-creation false)
in the.midje.clj
config file -
bump libraries
- Add midje.sweet/tabular
clj-kondo
config
- Add more midje symbols to
clj-kondo
config
- Improve
clj-kondo
support for checkers
- Improve
clj-kondo
support oftabular
- Support
tabular
macro and exclude arrows fromclj-kondo
linter
- fix time reporting issue in junit reporter
- fix infinite loop when
(autotest)
is called twice
- add newline to junit emitter
- respect the
MIDJE_COLORIZE
environment variable when configuring colorization settings
- correctly print linebreaks in failure messages
- Introduce
midje.experimental/gen-let
macro for combining generative matchers
- Fix boxed math warnings from
rrb-vector
- Support JDK 11
- 262: Fixed issue where
tabular
can't distinguish between table header and body
- 445: Stop swallowing exceptions in
for-all
fact setup
See details in alpha releases of 1.9.2
.
- 332: Fix issue with
provided
in presence of laziness
- 436: Show exceptions raised by checker functions
- 431: POTENTIALLY BREAKING Fix issue where you can fake functions with incorrect arities. Function faking now produces a test failure if you provide more or less arguments than expected by the function definition. This may break tests that incorrectly faked functions, but this is a good thing because it will reveal bugs in your tests.
- Print records in conventional way
#user.YourRecord {:arg-one 100}
, instead of{:arg-one 100}::YourRecord
- Fix upstream reflection warnings in
suchwow
- Remove
clojure-commons
andswiss-arrows
dependencies
- pin specter version to fix import warning in suchwow
- use released version of clojure 1.9
- POTENTIALLY BREAKING Fail when
=contains=>
targets a non-map value, such as a vector, which has unclear semantics. A fact that looks like
(unfinished gen-list)
(fact
(first (gen-list)) => 'list
(provided
(gen-list) => ..some-list..
..some-list.. =contains=> ['list 'contains 'not-suppored]`))
can be updated to
(let [some-list ['list 'contains 'not-suppored]
(fact
(first (gen-list)) => 'list
(provided
(gen-list) => some-list)))
Note that clojure doesn't allow var names that begin with .
(like ..some-metaconstant..
) in let
-forms
- Experimental
for-all
construct for quick-check style testing, powered byclojure.test.check
. Currently in themidje.experimental
namespace. - Pretty printing output and exceptions. Can be disabled by setting the
:pretty-print
configuration tofalse
. - Support for the using the same metaconstant in a function fake and
=contains=>
(#159)
- Drop support for Clojure
1.5
and1.6
See fixes noted in versions since 1.8.3
- allow
for-all
to appear inside offact
forms
for-all
construct for quick-check style testing, powered byclojure.test.check
- show more info in load-time exception
- fix stacktrace printing after output colorization changes in
1.9.0-alpha10
- add
:pretty-print
config to allow for disabling the exception and datastructure pretty-printing.:pretty-print
is enabled by default. - fix NPE to allow facts to be loaded via
load-string
- re-order midje/clojure.test output to clarify which is which
- fix
null
line-number in failures occurring inagainst-background
- fix some reflection warnings
- Colorize and pretty print output when an actual value doesn't match an expected value
- Fail when
=contains=>
targets a non-map value, which has unclear semantics
Fixed issues:
- 389: Midje throws exception when using prerequisites for stubbing function with specific arguments
- 379: Fact running twice
- 370: Improvement on "migrating from clojure.test" tutorial
- 362: Keyword can not be used as function in
provided
clause - 348:
just
checker is accepting incorrect maps - 326: Wiki lacks documentation on provided
- 317: Checking function is called twice
- 281: Midje crashes on syntax
- 267: clojure.walk/postwalk fails when given a metaconstant
- 265: Midje messes up comparison of sets with vectors containing the same number of elements with different types.
- 159: Metaconstants are different
- Prevent use of
print
in prerequisites, which causes an infinite loop if Midje needs to print any errors. (#347) - Try a bit harder to help user if clojure.tools.namespace fails. (#365)
- Compatibility with Specter 0.13
- ... which means dumping support for Clojure 1.6
- Ugrade clojure.unify to allow compatibility with Clojure 1.9alpha11
- Live with
clojure.core/any?
. Thanks, Børge Svingen
- PR to make Midje play better with Eastwood (via Ben Sinclair).
- Now produces fewer warnings in Jaunt (via Jason Felice)
- Now compatible with Specter 0.11.
- Drop support for Clojure 1.5
- Experimental version from @dlebrero that unloads deleted namespaces.
(change-defaults :run-clojure-test false)
prevents clojure.test tests from being run.- NOTE NOTE NOTE: Previous should be documented before 1.9.0 is released.
- This is the last version compatible with Specter 0.9.X
- Bump to newer versions of dependencies
- Drop back to an older version of commons-codec to match what compojure uses. Will avoid annoying Maven messages for many users.
- Messed up version in the project.clj file.
- no longer indirectly drags in all of clojurescript.
- improved error messages when prerequisites are passed unrealized lazyseqs.
- obscure bug fixes
(Some other non-feature, cleanup changes were lost.)
Older changes were in HISTORY.md, and they're not worth preserving.