2011-12-22 81 views
0

我有一個主題。我如何使用UnitTests測試它?如何使用計時器測試多線程的Windows服務?

在此先感謝!

+1

您的問題應該更多elloborated.Till然後我們不能說你的解決方案 – prema 2011-12-22 06:47:45

+0

我有一個windiws服務。在Onstart中,我運行2個線程。每個線程創建定時器功能。那麼,我該如何測試這項服務? – user970742 2011-12-22 06:57:19

回答

1

一般而言:多線程代碼的可靠單元測試非常困難。原因是你無法控制線程何時運行。

一個簡單的解決方案是在您的單元測試中發起請求(或任何它是您的線程進程),然後Thread.Sleep()一段時間,並希望您的線程按計劃完成工作。然後檢查一切是否得到正確處理。這主要是有效的,但由於計劃和時間安排會偶爾失敗 - 特別是當您在VM中運行單元測試時。你也可以在你的線程中設置一些事件或狀態來表明它們已經通過了某些階段,但它可能會變得有點難看。

但是,如果您可以更具體地確定您在做什麼,那麼可能會有一些解決方法更好地發揮作用。