2015-10-15 48 views
3

我在我的應用程序中有以下代碼。它的行爲可以通過在它的過程信息的環境字典中設置「MY_KEY」鍵來改變。如何從單元測試更改應用程序的NSProcessInfo環境字典?

func myMethod() { 
    var environment = NSProcessInfo.processInfo().environment 
    if environment["MY_KEY"] { /* do something /* } 
} 

我想在單元測試中測試這個。問題是在單元測試中更改環境字典不會影響應用程序中的字典。

class MyAppTests: XCTestCase { 
    func testMe() { 
    var environment = NSProcessInfo.processInfo().environment 
    environment["MY_KEY"] = "my value" 
    myMethod() 
    // The app's environment does not change 
    } 
end 

是否有可能改變應用程序的環境字典從單元測試?

回答

3

NSProcessInfo提供的環境是隻讀的。您可以使用setenv c函數(從Swift正常工作)設置環境變量,如下所示:

setenv("MY_KEY", "my value", 1) 
相關問題