lunarmodules / luassert

Assertion library for Lua
MIT License
202 stars 77 forks source link

Custom assert failure messages #102

Closed o-lim closed 9 years ago

o-lim commented 9 years ago

This adds an optional failure_message argument that can be specified as the last argument to an assertion.

assert.is_true(boolean, "failure message")

As a consequence, equals and same now only take two parameters, an expected and an actual, instead of many actuals.

assert.is_equal(a, b, "Failed equals check on 'a' and 'b'")
assert.is_same(a, b, "Failed same check on 'a' and 'b'")

Assertions now look similar to the standard Lua assert interface of

assert(boolean, "failure message")

A custom failure message can also be added to spies/stubs.

assert.spy(s, "failure message").was.called()

or

assert.stub(s, "failure message").was.called()

Also added a message modifier as an alternate way of specifying a failure message.

assert.message('This test always fails').is_true(false)

This also addresses issue #60.