std.test
テストの書き方。test_ で始まる public 関数がテストになり、 shark test で集めて走る。失敗しても panic せず、そのテストだけを失敗として記録する。
import std.test;
public func test_add() {
test.eq(1 + 2, 3);
}
test.ok test.eq test.ne test.near test.is_error test.is_none test.fail test.describe test.before_each test.after_each
- test.ok(cond: bool) → void¶
-
真であることを確かめる。
test.ok("さめ".len() == 2); print("失敗しても次に進む");
- test.eq<T>(actual: T, expected: T) → void¶
-
2つが等しいことを確かめる。
actual T 実際の値 expected T 期待する値 test.eq("さめ".upper(), "さめ"); test.eq(1 + 2, 3);
- test.ne<T>(a: T, b: T) → void¶
-
2つが等しくないことを確かめる。
test.ne(1, 2);
- test.near(a: float, b: float, tolerance: float) → void¶
-
小数がほぼ等しいことを確かめる。
a float b float tolerance float 許す差 import std.math; test.near(math.sqrt(2.0), 1.4142, 0.001);
- test.is_error<T>(r: Result<T>) → void¶
-
失敗した Result であることを確かめる。
import std.file; test.is_error(file.read("ない.txt"));
- test.is_none<T>(v: T?) → void¶
-
値が無い(none)ことを確かめる。
test.is_none(int("さめ"));
- test.fail(msg: string) → void¶
-
その場で失敗させる。通らないはずの道に置く。
var n = 1; if n > 100 { test.fail("ここには来ないはず"); } print("来ない道は通らなかった");
- test.describe(s: string) → void¶
-
このテストの説明。識別子に使えない日本語は、ここに書く。
test.describe("負の大きさを渡したら 0 に直す"); print("説明を付けた");
- test.before_each(f: func()) → void¶
-
各テストの前に呼ぶ関数を決める。
func setup() { print("前準備"); } test.before_each(setup);
- test.after_each(f: func()) → void¶
-
各テストの後に呼ぶ関数を決める。
func teardown() { print("後片付け"); } test.after_each(teardown);