2011-02-18 112 views
2

對於單元測試,我想模仿不同的命令行參數。如何在運行時將commandLine參數修改爲我的程序(環顧四周,但找不到技巧)?基本上我試圖找到一種方法來修改READONLY屬性Environment.CommandLine的內容。如何修改Environment.CommandLine屬性?

+0

你有沒有想過用可注射的(甚至是一個單詞?)服務代替它,你可以用你的單元測試中的模擬代替它?雖然如果你絕對需要做你想做的事情,我會猜測TypeMock Isolator(http://typemock.com)可以做到。 – 2011-02-18 21:00:31

+3

你不能只用不同的命令行執行程序嗎? – 2011-02-18 21:01:44

回答

5

你不能,這是'硬'只讀。它來自Windows,GetCommandLine API函數,它不允許修改它。你必須嘲笑它​​。

4

這聽起來像是你試圖用艱難的方式來測試事情。推測在某個地方你有一個直接從Environment.CommandLine中讀取的函數。重構該方法以獲取字符串參數(在實際應用程序中將從Environment.CommandLine填充),並獨立測試該方法。