次プロジェクトへ向けて、社外への開発会社への要件定義や、その要件を満たしているかどうかの検収方法について考えていた時に、 テストを行った結果の可否のみがシンプルだという答えになり、 Unity上でのテストを行う手段の一つとして、「TestRunner」という機能があるようなので、 テストしてみた。
今回は、テストスクリプト側から、実装コード側のクラスなどにアクセスする為の手順
1. 実装コード側のAssembly Difinitionを作成する。
・Asset以下を表示し、その階層で、Create→Assembly Difinitionを押す。
名前は適当(本記事ではBase)
2. Tests/Testsを選択し、Assembly Difinition Referencesに、Baseを追加し、Apply
3.スクリプトを書いてみる
ベース側(場所は、Assets/Scripts以下ならどこでもいいと思う)
using System.Collections; using System.Collections.Generic; using UnityEngine; // テストなので、何にもしないクラスをとりあえず作成 public class BaseClass { public BaseClass() { } }
テスト側
using System.Collections; using System.Collections.Generic; using NUnit.Framework; using UnityEngine; using UnityEngine.TestTools; using UnityEngine.UI; using UnityEngine.SceneManagement; namespace Tests { public class TestRunnerTest { // クラス内の最初のテストが実行される前に一度だけ実行される [OneTimeSetUp] public void OneTimeSetUp() { } [UnityTest] public IEnumerator BaseClassAccess() { BaseClass c = new BaseClass(); yield return null; } } }
4. エラーが出ない事を確認する