2012-06-05 57 views
3

我有一個單元測試,其中包含需要與實際自定義對象進行比較的大量數據。所以我必須創建一個預期的自定義對象,並用大量數據填充它,現在我很難在代碼中編寫預期的自定義對象。有一種情況是我已經用不同的一組數據作爲我正在測試的方法的輸入進行測試。根據數據集的不同,我必須得到相應的輸出,這將是實際的響應(巨大的數據)。除了在代碼中對預期值進行硬編碼以外,是否還有上述場景的最佳做法? (有些東西像XML或CSV)。單元測試數據生成的最佳做法

+0

發佈您正在做的事情的代碼示例通常很有幫助,因此人們可以爲您提供具體的反饋... – Scrappydog

回答

0

您可以使用XmlSerializer創建將序列化對象的代碼。

當應用程序正在運行並且內存中有正確的對象時,您需要調用該代碼。

將XML保存到文件中,並在XML中測試構造對象。

您可能有多個可覆蓋不同場景的XML文件。

在我的應用程序中,我有從外部web服務導入數據的代碼。我爲服務響應對象(他們是巨大的)生成了一些XML,並使用它們來測試我的解析邏輯。

更新:該技巧僅適用於實體對象。你不能序列化/反序列化與文件或數據庫一起工作的類。

在這裏您可以找到示例代碼。 http://www.jonasjohn.de/snippets/csharp/xmlserializer-example.htm

+0

您可以向我發送一個您正在做什麼的示例嗎?它看起來與我正在實施的相似。 – user1432798

+0

[xmlserializer-example](http://www.jonasjohn.de/snippets/csharp/xmlserializer-example.htm)當構造好對象時,應在生產代碼中調用SerializerObj.Serialize,並且TestClass LoadedObj =(TestClass)SerializerObj .Deserialize(ReadFileStream);在單元測試中準備數據。 –

相關問題