単体テストのベスト プラクティスに取り組もうとしていますが、理解できない問題に遭遇しました。本番コードには、次のように、特定のオブジェクトを別のオブジェクトに変換する関数があります。
元のオブジェクト:
public OriginalObject
{
public string Id {get; set;}
public string Value {get; set;}
public int FormCode {get; set;}
public int NameCode {get; set;}
//other properties
}
public TransformedObject
{
public string Value {get; set;}
public int FormCode {get; set;}
//other properties
}
変換機能:
public TransformedObject Transform(OriginalObject originalObject)
{
var TransformedObject = new TransformedObject();
TransformedObject.Value = originalObject.Value;
TransformedObject.FormCode = originalObject.FormCode;
return TransformedObject;
}
テストは次のようになります。
[Test]
public void Transform_NonNullOptionObject_ValuePropertyIsTheSame()
{
OptionObjectTransform transform = InitTransform();
CustomOptionObject result = transform.Transform(optionObject);//mock optionObject
Assert.AreEqual(optionObject.Value, result.Value);
}
私の質問は、プロパティごとにテストを作成する必要があるかどうかです。または、[TestCase]
テストしたいプロパティを渡すために を使用する方法はありますか? または、テストですべてのプロパティが等しいかどうかを確認する必要がありますか? テストが失敗した場合、どのプロパティが一致しないかがわからないため、最後のものは解決策ではないと思います。