Minimalistic assertion library for unit testing in Wren.
Copy Assert.wren and LICENSE to your project.
The Assert class is inspired by Node.js's assert module, so the methods are similar. When an assert fails, it will issue a Fiber.abort().
import "./Assert" for Assert Assert.equal(5, 5) Assert.equal(5, 5, "Expected 5 to equal 5") Assert[5, 5] Assert[5, 5, "Expected 5 to equal 5"] Assert.notEqual(5, 10) Assert.notEqual(5, 10, "Expected 5 to not equal 10") Assert.ok(true) Assert.ok(true, "True should be truthy") Assert[true] Assert.notOk(false) Assert.notOk(false, "False should be falsey") Assert.aborts(Fn.new { Fiber.abort("This function is expected to abort.") }) Assert.doesNotAbort(Fn.new { System.print("This function does not abort, as expected.") }) Assert.typeOf(5, Num) Assert.typeOf(5, Num, "Expected the number to be a Num.") Assert.notTypeOf("Hello World!", Num) Assert.notTypeOf("Hello World!", Num, "Expected the String to not be a Num.") Assert.countOf([1, 2, 3], 3) Assert.countOf([1, 2, 3], 3, "Expect a list count of 3.") Assert.deepEqual([1, 2, 3], [1, 2, 3]) Assert.deepEqual([1, 2, 3], [1, 2, 3], "Expected the two lists to be the same.") Assert.exists(5) Assert.exists(5, "Expected 5 to not be null") Assert.notExists(null) Assert.notExists(null, "Expected null to be null") Assert.contains([1, 2, 3], 2) Assert.contains([1, 2, 3], 2, "Expected two to be in the sequence") Assert.disabled = true // Disables assertion checksAssert.equal(actual, expected, [message]) Assert[actual, expected, [message]] Assert.notEqual(actual, expected, [message]) Assert.ok(value, [message]) Assert[value] Assert.notOk(value, [message]) Assert.aborts(fn, [message]) Assert.doesNotAbort(fn, [message]) Assert.typeOf(object, type, [message]) Assert.notTypeOf(object, type, [message]) Assert.countOf(list, count, [message]) Assert.deepEqual(actual, expected, [message]) Assert.exists(value, [message]) Assert.notExists(value, [message]) Assert.contains(haystack, needle, [message]) Assert.disabled = true // Disables assertion checksUse wren-cli to run the tests...
wren_cli tests.wren