テストクラスの次の定義があります。
[TestFixture(typeof(List<int>), typeof(int))]
[TestFixture(typeof(List<string>), typeof(string))]
public class SerializableListTests<TList, TValue> where TList : IList<TValue>, new()
私はテストにNUnitを使用しており、上記のコードを使用してジェネリッククラスをテストしている特定のタイプのフィクスチャをオンザフライで作成する例を見つけました。
私が見つけた問題は、データをテストする必要があるときです。例: リストに項目を追加します。文字列型のテストはすべて失敗するため、テストに int を追加することはできません。例えば
public void Serializing_then_deserialize_returns_same_list()
{
var xmlSerializer = new XmlSerializer(typeof(SerializableList<TList, TValue>));
var xmlMemoryStream = new MemoryStream();
var serializedList = new SerializableList<TList, TValue>();
serializedList.List.Add(1);
//Continue with deserialization and collection assert lists are equal.
}
テストで使用されるデータを TestFixture で使用される型にリンクする方法はありますか?