2010-12-11 78 views
0

我正在使用Visual Studio 2008進行C#3.5項目工作,其中有幾個需要序列化的對象(它們實現IXmlSerializable)。在爲我的序列化代碼編寫單元測試時,我想確保當我向可序列化對象添加新屬性時,如果新屬性的序列化和反序列化未在我的​​任何一個測試中單元測試。 (通過一些失敗的單元測試)我可以強制使用Visual Studio單元測試框架對屬性進行單元測試嗎?

這可能嗎?我想如果有一個特殊的屬性可以標記我的屬性,那麼Visual Studio單元測試框架就會知道它需要測試。

或者是我的方法來完全關閉基地?如果需要,我可以切換到不同的單元測試框架。

+0

您使用的是什麼序列化策略? – Marco 2010-12-11 06:25:19

+0

對象實現IXmlSerializable – 2010-12-11 06:29:43

+0

爲什麼被告知這樣的改變很重要?爲什麼要添加一個屬性是一個問題? – Steven 2010-12-11 16:38:50

回答

0

我想我會嘗試編寫一套更好的序列化測試,它將使用反射來填充具有唯一值的對象的所有屬性,對其進行序列化,反序列化,並將初始對象與反序列化的對象進行比較。當然,如果您在課堂上進行非平凡的驗證檢查,可能會非常棘手。另一方面,你可能會使用已知屬性的已知好值和未知屬性的隨機內容 - 這對於非平凡的新屬性會失敗 - 這正是你想要的。 通過這種方式,您可以在添加新屬性(實際上是您的目標)之後測試序列化的效果。

如果上述選項不可能比您可能嘗試生成覆蓋率報告(通常是xml格式),然後編寫一個簡單的工具以確保您的類已經完全測試。我認爲實現這一目標非常困難,我不確定這是否值得。據我所知,沒有更好的方法來檢查一個屬性是否被調用。

相關問題