Stdlibtest
assert
import std::test::assert; · source
The assertion family
function expect(condition: boolean, message: Str) -> Result<(), TestError>;
function expect_true(condition: boolean, message: Str) -> Result<(), TestError>;
function expect_false(condition: boolean, message: Str) -> Result<(), TestError>;
function expect_eq<T>(a: T, b: T) -> Result<(), TestError>
where T: Eq + Display;
function expect_ne<T>(a: T, b: T) -> Result<(), TestError>
where T: Eq + Display;
function expect_close_f64(a: f64, b: f64, tolerance: f64) -> Result<(), TestError>;
function expect_some<T>(opt: &Option<T>, message: Str) -> Result<(), TestError>;
function expect_none<T>(opt: &Option<T>, message: Str) -> Result<(), TestError>;
function expect_ok<T, E>(r: &Result<T, E>, message: Str) -> Result<(), TestError>;
function expect_err<T, E>(r: &Result<T, E>, message: Str) -> Result<(), TestError>;
function bail(message: Str) -> Result<(), TestError>;
function bail_other(message: Str) -> Result<(), TestError>;
Every assertion returns Result<(), TestError>, so ? propagates a failure out of the test function.
| Function | Passes when |
|---|---|
expect(condition, message) | The condition holds. |
expect_true / expect_false | The obvious. |
expect_eq(a, b) / expect_ne(a, b) | The values compare equal / unequal. T: Eq + Display, so the failure message renders both. |
expect_close_f64(a, b, tolerance) | The values are within tolerance. |
expect_some / expect_none | The option has / lacks a value. |
expect_ok / expect_err | The result is Ok / Err. |
bail(message) fails the test outright, and bail_other(message) reports a non-assertion failure — a setup problem rather than a wrong answer.