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) {
        // ...
    }
}

另请参阅: