Assertions Reference¶
The leste.assertions module provides ready-made assertions with clearer default failure messages than Lua's built-in assert.
local Assertions = require("leste.assertions")
Every function accepts an optional message as its last argument, used instead of the default failure message.
Boolean checks¶
Assertions.assert(condition, message?)¶
Fails unless condition is truthy.
Assertions.notAssert(condition, message?)¶
Fails unless condition is falsy.
Equality¶
Assertions.equal(expected, actual, message?)¶
Fails unless expected == actual.
Assertions.notEqual(expected, actual, message?)¶
Fails unless expected ~= actual.
Strings¶
Assertions.strContains(haystack, needle, message?)¶
Fails unless haystack contains needle (checked with a plain, non-pattern search, so needles with %, ., etc. are matched literally).
Assertions.strNotContains(haystack, needle, message?)¶
Fails unless haystack doesn't contain needle.
Tables — keys¶
Assertions.tableHasKey(tbl, key, message?)¶
Fails unless tbl[key] is not nil.
Assertions.tableNotHasKey(tbl, key, message?)¶
Fails unless tbl[key] is nil.
Tables — values¶
Assertions.tableContains(tbl, value, message?)¶
Fails unless some value in tbl equals value (checked with == over every entry, via pairs).
Assertions.tableNotContains(tbl, value, message?)¶
Fails unless no value in tbl equals value.
Full example¶
local Leste = require("leste.leste")
local Assertions = require("leste.assertions")
Leste.it("demonstrates the Assertions module", function()
Assertions.assert(1 + 1 == 2)
Assertions.notAssert(1 + 1 == 3)
Assertions.equal(2, 1 + 1)
Assertions.notEqual(3, 1 + 1)
Assertions.strContains("Hello, World!", "World")
Assertions.strNotContains("Hello, World!", "Lua")
local user = { name = "Ada", age = 36 }
Assertions.tableHasKey(user, "name")
Assertions.tableNotHasKey(user, "email")
Assertions.tableContains(user, "Ada")
Assertions.tableNotContains(user, "Grace")
end)