Zig 测试 (Zig Test)
Zig 语言内置了单元测试框架。test 关键字用于创建测试块。
const std = @import("std");
test "expect addOne adds one to 41" {
try std.testing.expect(addOne(41) == 42);
}
fn addOne(number: i32) i32 {
return number + 1;
}
运行测试
使用 zig test 命令来运行测试:
$ zig test comments.zig
All 1 tests passed.
测试声明 (Test Declarations)
测试声明包含唯一的测试名称,并且不带参数,也不返回任何内容(除了可能的错误)。
test "this is a test" {
// ...
}
如果测试块包含任何未处理的错误,测试将失败。
文档测试 (Doctests)
文档注释中的代码块也可以进行测试。这确保了文档中的示例始终是最新的且可以正常工作。
检测测试构建
使用 builtin.is_test 可以检测代码是否正在作为测试构建的一部分进行编译。
const builtin = @import("builtin");
pub fn main() void {
if (builtin.is_test) {
// ...
}
}