TestCaseSourceはテストケースのデータをメソッドで引き渡す方法。
メソッドはプロパティでも構わないけど、staticで宣言する必要がある。
テスト内容は実際使ったものをそのまま載せました。
[UnityTest]
[TestCaseSource(nameof(Datas))]
public IEnumerator すでに同じシンボルオブジェクトがあったら作らない(ISymbol symbol)
{
_resolver.InstantiateSymbol(symbol,_symbolParent);
_resolver.InstantiateSymbol(symbol,_symbolParent);
Assert.That(_symbolParent.childCount,Is.EqualTo(1));
yield return null;
}
static IEnumerable<object> Datas()
{
MidiFile file = Addressables.LoadAssetAsync<MidiObject>("LongMusicSingleChannel").WaitForCompletion()
.CreateMidiFile();
var longData = new ScoreData(file);
foreach (var symbol in longData.Symbols)
{
yield return new TestCaseData(symbol).Returns(null);
}
}
戻り値のあるテストケースは期待される戻り値を知らせる必要があるらしい。
この場合はnullを返すことをテストに知らせる。
重要なのは、
yield return new TestCaseData(symbol).Returns(null);
でTestCaseDataオブジェクトでテストしたい引数を設定した後に、Returnsで戻り値がnullであることを書いておく必要があるみたい。
コメント