[英]Net Core: Code Generation for IEquatable/Equals for Comparing Two Class Models
我們從實體框架中搭建數據庫以創建類模型。 我們有超過1000個課程。 現在,我們正在實施單元測試,以比較插入了實際類和期望類的類。 以下網站推薦以下方法比較所有會員。
我必須為我所有的1000多個班級寫這篇文章嗎? 還是有一種方法可以在Visual Studio中使用自動代碼生成來創建所有這些IEquatable? 也許與T4?
https://grantwinney.com/how-to-compare-two-objects-testing-for-equality-in-c/
public class Person : IEquatable<Person>
{
public string Name { get; set; }
public int Age { get; set; }
public bool Equals(Person other)
{
if (ReferenceEquals(other, null))
return false;
if (ReferenceEquals(this, other))
return true;
return Name.Equals(other.Name) && Age.Equals(other.Age);
}
下面的團隊合作伙伴回答很好,需要為1000多個類實現這種方法的方法。
如果您僅針對測試斷言實現Equals,則可以使用FluentAssertions之類的庫來進行斷言。 各種BeEquivalentTo方法比較對象圖並給出詳細的錯誤消息(例如,預期Age為x但為y),通常比實現自己的Equals方法所得到的結果更好。 它與現成的所有主要測試框架(mstest,nunit,xunit.net)集成。
是的,它可能在Visual Studio> = 2017中或使用ReSharper:
https://stackoverflow.com/a/48441971
這對於1000多個類仍然很耗時。 您可能會研究Visual Studio的用於插件開發的API,以查看是否可以通過編程方式觸發整個文件列表的此選項。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.