设置 SUI 代币和测试失败案例
在测试中创建 SUI 代币
一些测试在测试函数时可能还需要创建 SUI
代币。这可以通过已经在 coin 模块中定义的 #[test_only]
函数来完成。
use sui::coin;
#[test]
public fun test() {
let coins = coin::mint_for_testing(1000);
// 测试内容
}
对于自定义代币,开发者需要在初始化这些代币的模块中定义 test_only 函数,因为铸造自定义代币需要 TreasuryCap。
失败案例
在测试错误情况时,开发者可能希望编写预期失败的测试(例如,被测试函数由于无效输入正确地失败)。这可以通过 #[expected_failure]
注释来实现。
#[test]
#[expected_failure(abort_code = kiosk::royalty_rule::EInsufficientAmount)]
fun test_default_flow_0_invalid_amount_fail() {
}
我们可以使用 abort_code =
来指定我们期望测试返回的中止代码,而无需硬编码。这可能是目前在 Move 中最接近公共常量的做法。近期可能会有更新,增加对公共常量的支持。