测试
MoonBit 内置测试支持,无需导入或配置额外包和工具。只需使用测试块并在其中编写测试代码。
注意:本教程暂不支持此功能。您可以在我们的 playground 或安装 MoonBit 工具链后在终端中尝试。
在第一个测试块中,我们使用内置函数 assert_eq
、assert_false
和 assert_true
测试一些属性。通过在终端运行 moon test
或点击集成开发环境 (IDE) 中的测试按钮,即可执行测试。
维护测试
手动维护预期值有时很繁琐。MoonBit 也支持内置的快照测试。快照测试会运行被测代码并将预期结果存储为快照。
在第二个测试块中,我们使用 inspect
函数测试 fib
的结果和数组的 map
方法。通过在终端运行 moon test --update
或点击 IDE 中的 Update test
按钮,结果将自动插入为第二个参数。
下次运行测试时,它将报告当前结果与存储结果之间的差异。您可以使用 --update
标志将存储结果更新为新结果。
test {
assert_eq!(1, 1 + 2)
assert_false!(1 == 2)
assert_true!([1,2,3] == [1,2,3])
}
test {
inspect!(fib(5))
inspect!([1,2,3,4].map(fib))
}
// Add test name to make it more descriptive.
test "fibonacci" {
inspect!(fib(5), content="5")
inspect!(fib(6), content="8")
}
fn fib(n : Int) -> Int {
if n < 2 {
n
} else {
fib(n - 1) + fib(n - 2)
}
}