我正在嘗試使用單元測試最佳實踐,並且遇到了一個問題,我無法得到我的頭。產品代碼有一個轉換給定的對象到另一個,像這樣一個功能:NUnit如何防止代碼重複
原來的對象:
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]
來傳遞我想測試的屬性?或者應該測試檢查,看看所有的屬性是否相等? 我不認爲最後一個是解決方案,因爲如果測試失敗,我們不知道哪個屬性不匹配。
當經歷的測試,如果測試失敗,那麼就不會真的是確切地知道哪個屬性沒辦法,我們只知道其中一人做,對嗎? – SOfanatic
比較可能會報告如下內容:預期{「a」,1},但得到{「b」,2}。因此,您可以看到每個沒有捕捉的屬性,而不僅僅是第一個屬性。 –