2008-09-24 134 views
0

我們的軟件管理來自各種來源的大量數據饋送:實時複製數據庫,自動FTPed,數據庫存儲過程的定時運行以緩存來自鏈接服務器的數據快照以及許多其他獲取數據的方法。單元測試數據?

我們需要覈實和驗證這樣的數據:

  • 有一個進口,甚至發生
  • 是合理的數據(空值,行數等)
  • 數據是否與調和其他值(也許我們有相似的數據多源)
  • 是它的數據和進口需要手動提示

在許多方面,這就像單元測試:有許多類型的檢查,只需在列表中添加一個新的檢查,然後針對特定事件重新運行每個測試類。已經有很好的GUI來運行測試,甚至可以安排它們。

這是一個很好的方法嗎?數據驗證模式是否有更好的類似的概括性?

我們是一個.NET商店,Windows Workflow(WF)會是一個更好的更靈活的解決方案嗎?

回答

1

單元測試與您需要做的不相似。它更多地遵循集成測試或驗收測試。但那不是重點。

您的系統對驗證進入系統的數據有很高的要求。數據通過各種方式進入系統,我認爲它需要以不同的方式進行驗證。

工作流適用於設計和控制易於更改或需要人工干預的業務流程(邏輯)。當涉及到驗證主題時,它是不可知的。但是,將驗證過程作爲工作流程託管可能是一個好主意,因爲工作流程被設計爲靈活,長期生活並且能夠人爲干預。在工作流狀態機框架中託管驗證過程將允許您在運行時爲不同類型的數據導入定義驗證策略。

您需要設計一個驗證框架,該框架在邏輯上嚴重依賴於繼承的組合。分解數據可以導入系統並驗證爲原子步驟的所有不同方式。按照責任分組這些步驟,並使用實現對象執行每個步驟所需的最基本的最小屬性和方法創建接口。創建由這些不同接口組成的基類。從這個框架中,您可以混合匹配適合特定導入或驗證步驟的實現。

最後一件事。工作流程序列化爲xaml以進行長期存儲。你的類應該是xaml序列化的,以便從活動到存儲庫的過渡,並儘可能平滑和簡單地返回。

0

測試此數據的有效性似乎是合理的。你可以稱之爲單元測試,這是你的選擇。我不會。使用您找到的最適合這項工作的工具 - 我不知道WF(WebForms?)是什麼意思。

通過自動測試此可以獲得最大收益。無論是自動的還是適合你的,都不錯。