這樣的狀態的方法的單元測試,我有以下的(使用C#)的問題:關於改變私人領域
我有兩個私人領域中的一類,一個是節省了場的原始狀態還有一個保存更新的狀態。
我現在想編寫一個基本上採用原始狀態的方法,將其複製到更新的狀態並更改它的一些內容。
到目前爲止,我已經實現,作爲一個無效的方法,只是改變字段的狀態(如果需要)。這些字段稍後將被另一種方法使用。
我不認爲我會有任何實施的麻煩,但我想爲這種方法編寫單元測試(與MSTest),並不能看到我可以如何正確地測試這個。
我真的需要測試的是給定輸入參數的字段內容與原始狀態相比是否發生了變化。由於這兩個字段都是私有的,我不能訪問原始狀態來爲單元測試設置一個值,也不能訪問這些字段以用於任何斷言的比較。
最簡單的方法是公開所有這些領域與公共屬性,但我真的沒有用於公共屬性除了單元測試。另一種方法是重寫方法以返回更新後的狀態,但這仍然不能幫助我將原始狀態設置爲測試所需的狀態。
關於如何解決這個問題的任何想法或最佳實踐?
我認爲這是我正在尋找的。我實際上改變了原來的狀態並返回更新後的狀態,這使得它可以自行測試。我不確定是否對該解決方案感到滿意,所以我可能會返回到前一個迭代,並更新測試以使用PrivateObject。無論如何,這是非常好的知道未來的測試。 – 2011-05-16 09:06:21