UnityTestRunnerでasync/awaitを利用できるようにする方法
こんばんは、カカポンです。
UnityTestRunnerってそのままだとNunitが古くてasync/awaitが使えないそうです💦
ですが、CySharpのCTOさんである neueccさんのツイートによると...
UnityのUnit Test Runnerでasync/await対応。シンタックス弄り的にはこの辺が限界かなー、まぁ悪くはないと思います。 pic.twitter.com/Kizu2IJW10
— neuecc (@neuecc) 2018年8月8日
写真を見る限りUniTaskを導入すれば、UnityTestRunnerでもasync/awaitが使えるようです✨
というわけで、私も早速試してみることにしました。
①UniTaskを導入する
こちらからリリースページに行って、unitypackageをダウンロードするのが簡単だと思います。
②UniTaskをコード上で使えるようにする。
using Cysharp.Threading.Tasks;
が必要になります。
Assemblyを分割している人は Assembly Difinition References
にUniTask
を追加しましょう。
③Testを作る
テストの形式は こんな感じになります。
public IEnumerator TestXXX() => UniTask.ToCoroutine(async () => { // Act var xyz = await AsyncFunc(); // Assert Assert.AreEqual("xyz return data", xyz); });
これでasync/awaitのテストができるようになりました。😄