如何从单元测试中更改应用程序的 NSProcessInfo 环境字典?
Posted
技术标签:
【中文标题】如何从单元测试中更改应用程序的 NSProcessInfo 环境字典?【英文标题】:How to change app's NSProcessInfo environment dictionary from a unit test? 【发布时间】:2015-10-15 03:30:20 【问题描述】:我的应用中有以下代码。可以通过在其进程信息的环境字典中设置“MY_KEY”键来更改其行为。
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
是否可以通过单元测试更改应用的环境字典?
【问题讨论】:
【参考方案1】:NSProcessInfo 提供的环境是只读的。您可以使用setenv
c 函数设置环境变量(在 Swift 中可以正常工作),如下所示:
setenv("MY_KEY", "my value", 1)
【讨论】:
以上是关于如何从单元测试中更改应用程序的 NSProcessInfo 环境字典?的主要内容,如果未能解决你的问题,请参考以下文章
如何测试我的数据是不是更改? (Vue JS、Jest、单元测试)
ServiceStack - 检查单元测试中的 WSDL 更改