2011-04-18 32 views
2

我想在一個UnitTests中編寫一些TestMethods,它們都共享一個公共靜態資源的單個實例。C#UnitTest跨單元測試共享一個對象的單個實例

在我的單元測試的構造函數中,我實例化了另一個C#項目中的公共靜態。然後我所有的測試都訪問這個公共靜態。

但是,似乎爲該UnitTest類中的每個TestMethod實例化了一個新的Test類實例。

有沒有辦法允許這些測試共享相同的公共靜態實例?

還是有另一種技術,我應該用來測試服務?

**更新**

好吧,似乎我用什麼我想達到的錯誤的做法。

我已經有單元測試,正在隔離測試,沒有任何共享資源,按預期工作。

我試圖實現的是一種測試併發連接到服務的方法,該服務將通過Web服務/ HTTP接口或通過TcpListener直接連接來傳遞序列化字節[]。

每個連接的客戶端都通過服務與彼此進行交互。

這些測試僅用於測試虛擬客戶端的可靠性和互操作性,其級別低於暴露的網絡接口。

該服務已被封裝到一些公開的靜態對象中,這些靜態對象公開了通過網絡接口公開的相同功能。

我需要一種方法來創建虛擬客戶端,這些客戶端將連接到這些對象並根據響應聲明不同的結果。

+3

你正在使用什麼測試跑步者? – jason 2011-04-18 15:13:45

+1

你是什麼意思「我實例化一個公共靜態」?一個公共靜態是什麼?請提供一個代碼示例。 – 2011-04-18 15:15:25

回答

7

一般而言,您不希望單元測試共享ANY狀態,這樣可以減少可能出現的崩潰錯誤。您應該設置每個測試的預期開始狀態以消除這些突破問題。因此,例如,如果您需要共享的靜態文件SomethingOrOther,則應爲每個單元測試創​​建一個處於正確狀態的新文件。