Runnerで複数の入力値を取り扱う方法をまとめました。参考Unity2020.2.3複数の入力値を取り扱う?例えばいま以下のように、1と3と9の三つの値をそれぞれ累乗した値が10以下であるかどうかをテストしたいとします。}}上記のように書いても以下のように正常にテストは作成できます。テストしかしテストしたい値毎にわざわざメソッドを定義するのはナンセンスです。この記事ではこのようにテストにおいて複数の入力値を扱う方法についてまとめます。Values手軽に複数の値をテストするにはValuesアトリビュートが使えます。複数の定数値を指定Valuesアトリビュートを使うと複数の定数値を引数として指定できます。Runnerには以下のように表示されます。ValuesValuesを複数指定Valuesアトリビュートは一つのメソッドに対して複数指定することができます。text)この場合、Valuesアトリビュートの組み合わせ分だけテストケースが生成されます。組み合わせ分のテストケースEnumの全要素についてテストValuesアトリビュートをenum型の引数につけるとそのenumの全要素についてのテストを作成できます。}}Enum分のテストケースboolについてテストValuesアトリビュートをbool型の引数につけるとtrue/falseそれぞれについてのテストを作成できます。}}boolのテストケースValueSource前節のValuesアトリビュートはアトリビュートの中に直接テスト用の値を指定しました。ValueSourceアトリビュートを使うと別途定義した値を指定できます。フィールド・プロパティ・メソッドを指定できるValueSourceは以下のようにIEnumarableな引数の情報を持つstaticなフィールドの名前を与えることで使用します。9};}結果は以下のようになります。テストまた、フィールドの代わりにプロパティやメソッドを指定することもできます。以下のように指定すると他のクラスで定義した値をテストの入力値にできます。}}TestCase複数の値のテストにはTestCaseアトリビュートを使うこともできます。使い方TestCaseアトリビュートは以下のようにアトリビュートをテストケースの分だけ記述します。}}結果は以下のようになります。テストExpectedResultを使うTestCaseアトリビュートの引数にExpectedResult引数を指定すると、テストメソッドの戻り値がその値であることをテストできます。}}TestCaseSourceTestCaseSourceを使うとValueSourceのように別途定義した値をテストの引数として指定できます。フィールド・プロパティ・メソッドを指定できるTestCaseSourceは以下のようにして使います。9};}指定するフィールドはIEnumarableな引数の情報を持つstaticなものである必要があります。ValueSource同様、フィールドの代わりにメソッドやプロパティも使えます。以下のように指定すると他のクラスで定義した値をテストの入力値にできます。以下のようにIEnuemrableなクラスを指定することもできます。}}RangeRangeアトリビュートを使うと指定した範囲の値を入力値として使えます。使い方Rangeアトリビュートは以下のように引数に対して使います。}}結果は以下のようになります。テストステップを指定また第三引数にステップ数を指定できます。指定するとステップ数だけ値を飛ばして入力値を作成します。}}テストRandomRandomアトリビュートを使うと指定した範囲内の値を指定した数だけテストの入力値として指定します。RunnerではIEnumeratorを返すメソッドにUnityTestアトリビュートを付けると複数フレームにまたがるテストが行えます。}}このようなテストを書く場合、上記で紹介したアトリビュートの一部が使えないので注意する必要があります。具体的には以下の表を参照してください。〇ちなみにTestCaseやTestCaseSourceをUnityTestなメソッドにつけると以下のようにテストが失敗します。1はてなブログをはじめよう!halya_11さんは、はてなブログを使っています。ブログを報告する引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。