万年素人からHackerへの道

万年素人がHackerになれるまで殴り書きするぜ。

  • ・資産運用おすすめ
    10万円は1000円くらい利益
    資産運用ブログ アセマネ
    • ・寄付お願いします
      YENTEN:YYzNPzdsZWqr5THWAdMrKDj7GT8ietDc2W
      BitZenny:ZfpUbVya8MWQkjjGJMjA7P9pPkqaLnwPWH
      c0ban:8KG95GXdEquNpPW8xJAJf7nn5kbimQ5wj1
      Skycoin:KMqcn7x8REwwzMHPi9fV9fbNwdofYAWKRo

    UnTested Test単体テストフレームワーク。 Unity C#

    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);
        }
    }