NUnit Liteでは、コルーチンはテスト出来ない。(多分(^_^;))
StartCoroutineとかIEnumeratorとか書くだけで動かない。
現在最新版の「NUnitLite 0.7」でもできなかった。
仕方ないので作者に聞くと別のAssetを紹介してもらった。(自分のアセットに自信ないのかいっ!)
これ。「UnTested」です。
URL: https://www.assetstore.unity3d.com/#/content/12325
UnTested is a Unit Test Framework for Unity3D.
◯使い方
参考には、「UnTested/Scenes/」にあるTestsシーンを見るといいかもしれない。
「TestRunner.cs」をアタッチした「TestRunner」GameObjectをテストしたいシーンに置いておく。
YouTube参考URL: http://www.youtube.com/watch?v=hX2etHFrIDQ&feature=youtu.be
サンプルとして、「ExampleTest.cs」がある。
※YouTubeの動画にあるように「ExampleTest's'.cs」のように複数形がいいかもしれない。
テストコード自体はGameObjectには貼り付けない使い方。
実際の実行は、「Window」→「UnTested」
これは「UnTested/Scenes/Tests」シーンを直接呼んでいる。
今後もここを使うやりかたかも?
Assert.Trueではなく、Assert.IsTrueという名前に注意。
ちなみに、MoreThanなどがないので、
hogeが0以上のときをテストしたい場合は、
Assert.IsTrue (hoge >= 0, "テストメッセージ");
とやる?
しかし、StartCoroutineはサポートされてないのかな?
[TestFixture] public class StartCoroutineTests : MonoBehaviour { private OriginalApiAccess originalApiAccess; [Test] public IEnumerator AscyncTest () { yield return StartCoroutine ("RunWait"); Assert.IsTrue (true, "THIS SHOULD PASS"); } private IEnumerator RunWait () { yield return new WaitForSeconds (0.5f); } }