我有一個控制檯應用程序(稍後將作爲Windows服務安裝),該應用程序基本上運行一個無限循環,從隊列中讀取消息並對該消息執行某些操作。如何在解決方案中集成測試控制檯應用程序?
我想創建一個自動化測試用例來啓動測試端到端行爲。我的問題是,在單元測試中啓動應用程序的最佳方式是什麼? 我是否使用Process.Start? 或者我可以直接引用Program.cs - static void main並運行它?
想法?示例代碼將不勝感激,謝謝!
[更新:是的,我知道這是一個集成測試。我更新了標題。我已經把業務邏輯的邏輯分開了。集成測試的價值實際上是以自動化的方式來實現的。它可以確保我所有的配置設置是否正確,還有我與集版本問題都OK,我的記錄是和數據庫,隊列和高速緩存訪問都運行等]
理想情況下,您需要在Program.cs中有一個類爲您完成工作。所以你是Program.cs只會構造和調用該類的任何方法。這樣,如果您的控制檯應用程序中有依賴關係(例如數據),那麼您可以在單元測試中注入這些依賴項。 –
如果你正在談論**單元測試** ...那麼在你的應用中,每個單獨的類(嚴格來說)測試怎麼樣?你不應該一起測試應用程序,但它的組件。此外,在角落情況下,您的應用程序(如黑匣子)可能不會/不應該得到。對於集成測試,然後使用Process.Start()運行你的應用程序,直接調用它的類將會破壞測試,因爲你的測試平臺會/可能會過度影響它的環境。 –