현재 복사 기능에 대한 단위 테스트를하고 있으며 이전 목록과 새로 복사 한 목록 사이의 개체 요소를 비교해야합니다. 잘 작동하지만 for 루프가 포함되지 않은 방식으로 처리 할 수 있는지 궁금합니다. 여기 내 객체입니다Assert 두 개의 개체 목록을 같습니다 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을 살펴볼 수 있습니다.이 도구는 너겟 패키지로 제공됩니다. – Aravind
@fharreau보기에 더 짧습니다. 그것은 두건의 밑에 동일하다는 것을 중요하지 않다. –