2011-09-26 27 views
1

我的應用程序的設計是標準的用戶操作首先運行(並且即使用戶不能繼續生成感興趣的信息),然後可選地提供相應的一些系統更改,這需要提升。如果用戶選擇繼續,則程序會重新啓動,並要求使用命令行開關進行提升,以便指示它恢復工作流中的哪個位置。然後新的流程會在舊的流程停止並根據用戶要求進行更改的情況下進行選擇。如何單元測試僅限管理員功能?

我的問題是我不知道如何編寫針對庫方法的單元測試,這些方法必須進行特權調用,而無需以管理員身份運行所有Visual Studio。我真的很想避免這樣做,所以我沒有系統提示我輸入憑據來運行部分或全部單元測試。但目前作爲一個標準用戶,這些調用僅僅因爲「System.Management.ManagementException:Access denied」異常而失敗。

任何處理這個問題的想法或經驗都會提升整個Visual Studio的會話嗎?由於我正在使用內置的單元測試,理想情況下解決方案仍然會在測試結果窗口中顯示每個測試結果,但這不是要求。

回答

0

我不確定你在做什麼需要管理員權限,但我建議在單元測試中,你不應該實際上調用這些方法,而是嘲笑調用這些方法的類。

通過這種方式,您可以確保使用正確的參數進行正確的調用,但不會改變系統的狀態。

+0

我接受了答案,因爲它是正確的,但是我仍然對我的集成測試有同樣的問題。在對系統進行更改之前,我正在創建一個系統還原點以便在出現災難時進行回滾。 – Michael