テストケースは実際にテストしたい内容を記述した関数です。
この関数は戻り値を必ず必要とします。
0 : テスト継続
1 : テスト成功
-1 : テスト失敗
-2 : 致命的エラー
テスト継続の場合、次のtickでも同じ関数が呼び出されます。
関数が呼び出されたtickはnest.case.tick というスコアで取得できます。
(テストケースの関数は実際のテスト時にコマンド実行者 @s をテストケースエンティティに設定した状態で呼び出され、nest.case.tick はそのエンティティが保持しています)
# nest.case.tick を参照
execute if score @s nest.case.tick = ... run ...
# 致命的エラー時は -2 を返す
execute unless function xxx:check_fatal_error run return -2
# 失敗時は -1 を返す
execute unless function xxx:do_something run return -1
...
# 成功時は 1 を返す
execute if ... run return 1
# 継続時は 0 を返す
# nest.case.tick を使って複数回のテストを試行できる
# 例えば 10 回繰り返す場合は下記のようにする
# execute if score @s nest.case.tick matches 10.. run return 1
return 0
テストケースはテストスイートの束です。
複数のテストケースをテーマやカテゴリごとにまとめたものになります。
まとめられたテストケースには Setup と Teardown という共通の前処理・後処理を追加できます。
Setup と Teardown もそれぞれ一つの関数です。ただし、必ず戻り値を返さなければなりません。
0 : エラー
1 : 成功
テストをする前提として必要になる処理やエンティティの準備・後始末に利用してください。
# 初期化失敗した場合はエラー
execute unless function xxx:initialize run return fail
...
# 成功時は必ず 1 を返すこと
return 1