我有一個不可變的類,在構造函數執行期間設置了一些私有字段。我想單元測試這個構造函數,但我不確定這種情況下的「最佳實踐」。如何單元測試不可變類的構造函數?
簡單示例
該類在Assembly1定義:
public class Class2Test
{
private readonly string _StringProperty;
public Class2Test()
{
_StringProperty = ConfigurationManager.AppSettings["stringProperty"];
}
}
該類在Assembly2定義:
[TestClass]
public class TestClass
{
[TestMethod]
public void Class2Test_Default_Constructor()
{
Class2Test x = new Class2Test();
//what do I assert to validate that the field was set properly?
}
}
EDIT 1:我已經回答了這個問題有可能的解決方案,但我不確定這是否是「正確的路線」。所以如果你認爲你有更好的主意,請發佈它。
這個例子並不值得測試,但假設構造函數有一些更復雜的邏輯。避免測試構造函數並假設它在所有類上的方法測試都能正常工作的情況下才是最好的方法?
編輯2:看起來我讓樣品有點簡單。我用更合理的情況更新了它。
的代碼看,我可以在那裏找不到可能失敗的聲明。我沒有看到任何需要測試的理由。 – jop 2008-09-25 00:18:17
我更新了示例。假設構造函數中有些東西可能會失敗,我試圖測試的實際代碼非常冗長,我不想將它粘貼到此處。 – 2008-09-25 00:20:46