私の現在のプロジェクトでは、いくつかの IEqualitycomparers があります。
これらは、オブジェクトのいくつかのプロパティを取り、それらを比較します。
プロパティは、値とnullの両方に対して、等しいか異なるかのいずれかです。
これらを単体テストしたいのですが、さまざまな可能性はすべて正気ではありません。これらを効率的にテストするにはどうすればよいですか?
更新
現在、それらは entlib のデータ ブロックで満たされているため、コンストラクターではなくプロパティを介して値を取得します。
例(vb.netでは、C#も話します):
Public Class GuarantyEqualityComparer
Implements IEqualityComparer(Of Guaranty)
Public Overloads Function Equals(x As Guaranty, y As Guaranty) As Boolean Implements IEqualityComparer(Of Guaranty).Equals
Return x.ClientCode = y.ClientCode AndAlso x.LocationCode = y.LocationCode AndAlso x.CategoryCode = y.CategoryCode AndAlso x.GuarantyCode = y.GuarantyCode
End Function
Public Overloads Function GetHashCode(obj As Guaranty) As Integer Implements IEqualityComparer(Of Guaranty).GetHashCode
Const format As String = "{0}{1}{2}{3}"
Return String.Format(CultureInfo.InvariantCulture, format, obj.ClientCode, obj.LocationCode, obj.CategoryCode, obj.GuarantyCode).GetHashCode()
End Function
End Class