调试

在单元测试中,开发者可能需要了解如何在测试失败时进行调试。这有助于解决难以调试的意外失败。 通常,开发者希望在测试的不同地方打印出不同的值,以便更好地了解发生了什么。在 Move 中,你也可以这样做:

#[test]
fun test_my_function() {
    let a = 1;
    let b = 2;
    std::debug::print(&a);
    std::debug::print(&b);
    assert(a == b, 101);
}

std::debug::print 接受对任何值的引用并打印它们。请注意,要打印字符串字面量,你需要执行以下操作:

std::debug::print(&std::ascii::string(b"Hello, world!"));

std::debug::print 也可以打印整个结构体:

public struct MyStruct {
    a: u64,
    b: u64,
}

#[test]
fun test_my_function() {
    let my_struct = MyStruct { a: 1, b: 2 };
    std::debug::print(&my_struct);
}