Skip to content

std/testing ​

Test assertion helpers. Plain assert(cond) is a builtin and needs no import.

milo
from "std/testing" import { assertEqual, assertStrEqual }

API reference ​

assertBool ​

milo
pub fn assertBool(got: bool, expected: bool): void

Assert two booleans are equal.

assertContains ​

milo
pub fn assertContains(haystack: &string, needle: &string): void

assertEq ​

milo
pub fn assertEq<T>(got: &T, expected: &T): void

The general equality assertion: works for any type == accepts, and prints both sides. Prefer this over the width-specific helpers below, which predate it.

assertEqual ​

milo
pub fn assertEqual(got: i32, expected: i32): void

Assert two i32 values are equal.

assertEqual64 ​

milo
pub fn assertEqual64(got: i64, expected: i64): void

Assert two i64 values are equal.

assertFalse ​

milo
pub fn assertFalse(cond: bool): void

assertMsg ​

milo
pub fn assertMsg(cond: bool, msg: string): void

Abort with msg if cond is false.

assertNe ​

milo
pub fn assertNe<T>(got: &T, unexpected: &T): void

assertNear ​

milo
pub fn assertNear(got: f64, expected: f64, tolerance: f64): void

Floats: never compare with ==. 0.1 + 0.2 != 0.3 in binary floating point, so an exact assertion on computed floats fails for a program that is correct.

assertStrEqual ​

milo
pub fn assertStrEqual(got: &string, expected: &string): void

Assert two strings are equal.

assertTrue ​

milo
pub fn assertTrue(cond: bool): void

assertVecEq ​

milo
pub fn assertVecEq<T>(got: &Vec<T>, expected: &Vec<T>): void