0

テストクラスの次の定義があります。

[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 で使用される型にリンクする方法はありますか?

4

1 に答える 1

1

SerializableListTests<TList, TValue>私は、自分のタイプに固有の他のテストフィクスチャのような抽象クラスを使用してサブクラス化することで、同様のことを行うのにかなりの幸運がありました。そこでは、基本クラスの testfixture が強く型付けされるため、追加を行うことができます。

于 2012-08-31T05:08:41.910 に答える