現在、コピー機能のユニットテストを行っています。古いリストと新しくコピーされたリストの間のオブジェクトの要素を比較する必要があります。 これはうまくいきますが、forループを含まないようにすることができるかどうかは疑問でした。 は、ここに私のオブジェクトです:Assert 2つのオブジェクトのリストUnitTesting c#
new NaturePointObject
{
SId = 1,
Name = "Test",
Category = NaturePointCategory.Category1,
CreatorType = CreatorTypeEnum.1,
NaturR = NaturR.Bn,
Description = "Test",
Kumulation = Kumulation.EnEjendom,
Id = 1
}
私の古いリストが含まれている「NaturePointObject」とnaturPointListと呼ばれ、それがnewNaturePointListと呼ばれるリストにコピーされます。
Assert.AreEqual(naturPointList.Count,newNaturePointList.Count);
for (var i = 0; i < newNatureList.Count; i++)
{
Assert.AreEqual(naturPointList[i].Category, newNaturePointList[i].Category);
Assert.AreEqual(naturPointList[i].Description, newNaturePointList[i].Description);
Assert.AreEqual(naturPointList[i].Kumulation, newNaturePointList[i].Kumulation);
Assert.AreEqual(naturPointList[i].Name, newNaturePointList[i].Name);
Assert.AreEqual(naturPointList[i].CreatorType, newNaturePointList[i].CreatorType);
Assert.AreEqual(naturPointList[i].NaturR, newNaturePointList[i].NaturR);
Assert.AreNotEqual(naturPointList[i].SId, newNaturePointList[i].SId);
}
あなたが見ることができるように、オブジェクトのすべての要素が同じでなければならないではない。ここに は、私はそれが正常にコピーされたかどうかを知るためにアサート方法です。そして、私はオブジェクトの "Id"について気にしません。
forループを実行するよりも短い方法がありますか?
短いですどちら? LinQクエリでループstufを回避することはできますが、それでもフードの下にループが作成されます。 – fharreau
文字通りオブジェクト比較(ID無視)を行っているので、このhttps://github.com/jamesfoster/DeepEqualを見ることができます。これは、nugetパッケージとして利用できます。 – Aravind
@fharreau見るのがちょっと短い。それはボンネットの下で同じであることは関係ありません。 –