2011-03-21 108 views
3

我有一個WCF服務訪問數據庫並向其添加數據。現在,我想做一些整合和/或系統測試(自動化)。集成測試詳細

我該怎麼做?

我必須訪問數據庫,加載初始數據,調用服務,然後驗證數據是否實際加載到表中。

有沒有什麼策略可以做到這一點?

我正在使用WCF,實體框架,SQL Server,MSTests。

+0

爲什麼不「只是做」? – 2011-03-22 00:46:28

回答

1

如果你不介意你的測試項目依賴於實體框架,那麼這就是我將如何處理這個問題。

  1. 在測試項目中,僅使用您希望測試的表創建數據庫中的EF模型。
  2. 從測試項目中添加對WCF服務的服務引用。
  3. 在測試項目中創建一個測試。在此測試中,使用EF上下文創建您的初始測試數據。
  4. 從測試中調用您的服務。
  5. 檢查數據庫中相應的數據,調用你的斷言。
  6. 清理數據庫。

您還應該考慮使用輕量級的基於文件的/內存數據庫(如SQLite)來完成此任務。實現此目的的一個簡單方法是使用EF從數據庫生成模型,然後使用更新數據庫模型工具生成SQL,以便在SQLite實例中創建適當的表和約束。這意味着無需修改主要/開發數據庫中的數據,並且可能更快地進行測試。

另外關於第3步和第6步,有些人會主張使用內置於MSTest的設置/清理/拆卸可供件。在我看到它們幫助減少代碼重複之前,我通常不會開始使用它們,因爲在我看來,它們使測試不夠清晰和可讀,但這是個人的事情。