我想單元測試創建/更新系統環境變量的函數。 那麼我如何測試在C#中使用Nunit的上述功能?模擬系統環境變量在C#中
0
A
回答
1
我不能回答儘可能多的環境變量環境變量,您將不得不編寫自己的Environment
類。
在訪問/設置環境變量的一般範圍中,可以使用Environment.GetEnvironmentVariable
和Environment.SetEnvironmentVariable
。
例如,
Assert.IsEqual("test", Environment.GetEnvironmentVariable("test-var");
和設置,
Environment.SetEnvironmentVariable("test-var", "test");
1
換行創建/更新的類,它可以是依賴注入到你的代碼中的環境變量,真正的電話。您需要的兩個呼叫是:
string value = Environment.GetEnvironmentVariable("variableName")
Environment.SetEnvironmentVariable("variableName", "value");
後者總是以字符串作爲值。
然後包裝類會是這個樣子:
class MyEnvironment
{
public string GetVariable(string variableName)
{
return Environment.GetEnvironmentVariable(variableName);
}
public void SetVariable(string variableName, string value)
{
Environment.SetEnvironmentVariable(variableName, value);
}
}
然後在您的測試套件注入模擬創建/更新的模擬類。這將測試你的代碼的邏輯。
嘲笑的類將是這個樣子:
class MockEnvironment
{
private Dictionary<string, string> _mockEnvironment;
public string GetVariable(string variableName)
{
return _mockEnvironment[variableName];
}
public void SetVariable(string variableName, string value)
{
// Check for entry not existing and add to dictionary
_mockEnviroment[variableName] = value;
}
}
您需要測試的包裝類,以確保它不會實際創建/更新系統環境變量,但你只需要做的是,一旦。
相關問題
- 1. Java系統環境變量
- 2. Eclipse與系統設置環境變量
- 3. NAnt:路徑系統環境變量
- 4. Linux系統:設置環境變量與變量另一個環境的部分
- 5. 環境變量C++
- 6. 在螞蟻中忽略系統環境變量
- 7. 如何在boto中使用系統環境變量
- 8. 如何在Windows 7中設置系統環境CLASSPATH變量
- 9. 在AIR中訪問系統環境變量?
- 10. 如何在Perl中設置Win32系統環境變量?
- 11. 在windows中使用環境變量調用Ruby系統
- 12. PATH環境變量在cmd和系統屬性中不同
- 13. 如何在bash中導出系統範圍環境變量
- 14. 在log4j xml配置中使用系統環境變量
- 15. 如何在Excel中顯示操作系統環境變量?
- 16. Python在windows上獲取系統環境變量
- 17. 如何從Python遠程系統中檢索環境變量?
- 18. 在C中設置環境變量
- 19. C#設置環境變量
- 20. 懷疑管理員變量和系統變量中的PATH環境?
- 21. 選擇變量是批處理中的用戶還是系統環境變量?
- 22. 使用環境變量的Maven本地系統信息庫
- 23. 如何使用boost庫獲取系統環境變量?
- 24. 如何使用基於系統環境變量的RewriteCond?
- 25. ubuntu永久環境變量(系統,php,phpfpm和nginx或apache)
- 26. 如何通過系統環境變量nginx.conf
- 27. 如何從Mapper Hadoop設置系統環境變量?
- 28. PHP`getEnv`能夠讀取系統環境變量
- 29. 如何通過gulp獲取系統環境變量?
- 30. 從Windows批處理文件設置系統環境變量?
你能舉一個例子嗎? – VJL