次プロジェクトへ向けて、社外への開発会社への要件定義や、その要件を満たしているかどうかの検収方法について考えていた時に、 テストを行った結果の可否のみがシンプルだという答えになり、 Unity上でのテストを行う手段の一つとして、「TestRunner」という機能があるようなので、 テストしてみた。
※「テスト」とはなんぞは?という話は、また別の記事で考察してみる。
今回は、テストスクリプトを書いて、実際にテストを実行する所まで。
1. テストスクリプトにテストを書く(本記事ではTestRunnerTest)
とりあえず、下記のような記述をしてみる。
using System.Collections; using System.Collections.Generic; using NUnit.Framework; using UnityEngine; using UnityEngine.TestTools; namespace Tests { public class TestRunnerTest { // 成功処理の例 [UnityTest] public IEnumerator TestSuccessFunctionTest() { // テストとして、1+1は2だったか、のテスト bool res = ((1+1) == 2); Assert.IsTrue(res); yield return null; } // 失敗処理の例 [UnityTest] public IEnumerator TestFailureFunctionTest() { // テストとして、1+1は3だったか、のテスト bool res = ((1+1) == 3); yield return null; Assert.IsTrue(res); } } }
この記述をすると、TestRunnerダイアログの表示が変わる。
記述したメソッド名の項目が表示されたかと思う。
2. 実行
TestRunnerダイアログのRunAllを押す。
そうすると、Unityが実行したような挙動になり、テストが実行される。
3.結果を見る
ダイアログのように、テスト結果が表示される。
緑チェックは成功(自分で定義した成功になった)、赤スラッシュは失敗(自分が定義した成功にならなかった)である。
はい、これでテストができるようになりましたね!
・・・はい、皆さんこう思ったはずです。
「で、これが何の役にたつの??」
私もそう思いました。
そうです、これだけでは手段を実行する為の方法を知ったに過ぎないのです。
予め言っておくと、まだ私の方でも、実際にプロジェクトにテストを導入したところまでは行ってません。
ただ、もし使うとしたら恐らくこう使うだろう、という、実践的な想定部分までは辿りついているので、
次回以降は、その内容を記述していきます。