當我運行一些TestMethods這就是測試失敗測試一個JSON串行器的實現和前後系列化\反序列化比較兩個IList的對象時,但比較失敗。單位比較兩個ILists
型號
public class BusinessModel
{
public int ID { get; set; }
public string Name { get; set; }
}
測試
IList<BusinessModel> model = new List<BusinessModel>
{
new BusinessModel { ID = 1, Name = "Test1" },
new BusinessModel { ID = 2, Name = "Test2" },
new BusinessModel { ID = 3, Name = "Test3" },
new BusinessModel { ID = 4, Name = "Test4" }
};
[TestMethod]
public async Task TestSerialiseDeserialiseIsEqual()
{
ISerialiser serialiser = new Serialiser();
IList<BusinessModel> deserialisedModel;
string serialised = string.Empty;
serialised = await serialiser.SerialiseAsync<IList<BusinessModel>>(model);
deserialisedModel = await serialiser.DeserialiseAsync<IList<BusinessModel>>(serialised);
Assert.IsTrue(model.SequenceEqual(deserialisedModel));
}
結果
我已經嘗試了一些測試方法的細節在this後,但都失敗了。
Assert.AreEqual(t1.Count(), t2.Count());
IEnumerator<Token> e1 = t1.GetEnumerator();
IEnumerator<Token> e2 = t2.GetEnumerator();
while (e1.MoveNext() && e2.MoveNext())
{
Assert.AreEqual(e1.Current, e2.Current);
}
傳遞集合計數項目,但在第一個對象比較失敗。
Assert.IsTrue(model.SequenceEqual(deserialisedModel));
失敗Assert.IsTrue failed
CollectionAssert.AreEqual(model.ToArray(),deserialisedModel.ToArray())
失敗Collection.AreEqual failed (Element at index 0 do not match)
CollectionAssert.AreEquivalent(model.ToArray(),deserialisedModel.ToArray())
失敗{"CollectionAssert.AreEquivalent failed. The expected collection contains 1 occurrence(s) of <Helper.Tests.Serialisation.BusinessModel>. The actual collection contains 0 occurrence(s). "}
從檢查的對象,他們看起來是一樣的
原始
Deserialised對象
問題
什麼是比較對於聯合國的IList對象的最佳方法它測試?爲什麼我的測試失敗?
謝謝李。重寫Equals和GetHashCode方法對問題進行排序 –