Open2
【Unity】テスト関連のメモ

Moq
1. Unityへの導入
以下の記事を参考に導入.
ビルドに含めないために,それぞれのdllで以下を設定
-
Auto Reference
を無効化 -
Validate References
を有効化 - "Define Constraints" に
UNITY_INCLUDE_TESTS
を指定
2. 使用

非同期処理のテスト
コルーチン
UnityTestFramworkで非同期処理をテストしたい場合,UnityTest
属性を用いる.
※EditModeテスト
で扱える非同期処理はyield return null
に限られる.その他の待機処理はテスト自体が失敗扱いとなる.
上記の制約から基本的に非同期処理を扱う場合はRuntimeテスト
にすべきと思われる.
UniTask
UniTaskをそのまま扱うことはできないため,UniTask.ToCorutine()
でコルーチンに変換する必要がある.メソッド全体をコルーチンに変換してしまえば,async/await
で記述できる.
[UnityTest]
public IEnumerator UniTaskTest() => UniTask.ToCoroutine(async () => { // コルーチンへ変換
var cts = new CancellationTokenSource();
// 待機処理
await UniTask.Delay(1000, cancellationToken : cts.Token);
:
});