The UCG testing modules can be imported like so let t = import "std/testing.ucg";
It has a number of helpful assertions you can use in unit testing.
The asserts module exposes a number of asserts. It contains nested modules for each available assertion. You can configure the asserts module with a default description if desired.
Each of the asserts results in a result
field that is a tuple with the shape that
the assert statement expects.
The asserts module has one parameter.
default_description
which is optional and defaults to "TODO description"The ok
assertion module tests that something is true. It has two parameters.
test
which is required and is represents the expression to test.desc
which is an optional description to output for your test. This defaults to
the default_description
that the asserts
modules was set to.let t = import "std/testing.ucg".asserts{}; assert t.ok{ test=true, };
The not_ok
assertion module tests that something is not true. It has two
parameters.
test
which is required and is represents the expression to test.desc
which is an optional description to output for your test. This defaults to
the default_description
that the asserts
modules was set to.let t = import "std/testing.ucg".asserts{}; assert t.ok{ test=true, };
The equal
assertion module tests that two items are equal. It has three
parameters.
left
which is required and is the left hand side expression to compareright
which is required is the right hand side expression to compare.desc
which is an optional description to output for your test. This defaults to
a description created from the compared values.let t = import "std/testing.ucg".asserts{}; assert t.equal{ left=1, right=1, };
The not_equal
assertion module tests that two items are not equal. It has two
parameters.
left
which is required and is the left hand side expression to compareright
which is required is the right hand side expression to compare.desc
which is an optional description to output for your test. This defaults to
a description created from the compared values.let t = import "std/testing.ucg".asserts{}; assert t.not_equal{ left=1, right=2, };