我读了问题Easy way to see saved NSUserDefaults?
我找到了应用程序的 .plist 文件,但测试包的文件在哪里?
我读了问题Easy way to see saved NSUserDefaults?
我找到了应用程序的 .plist 文件,但测试包的文件在哪里?
如果您使用 Xcode 4 与 OCUnit 的集成,它会将测试包注入到正在运行的应用程序中。因此 NSUserDefaults 保存在应用程序本身中。这对单元测试来说是有问题的:当您手动运行应用程序时,您的默认设置可能已被您的测试覆盖。
不要直接使用,而是[NSUserDefaults standardUserDefaults]
使用依赖注入,将用户默认值作为初始化参数传入。然后你可以传入一个你可以查询的测试替身。(依赖注入的替代方法是从辅助方法返回 NSUserDefaults,覆盖该方法以在必要时返回测试替身。)
在我的环境中(Xcode 4.2,在模拟器中运行测试)NSUserDefaults
写入以下文件:
~/Library/Application Support/iPhone Simulator/Library/Preferences/otest.plist`
我猜您没有看到该文件是因为NSUserDefaults
' 的缓存机制(在类参考中进行了解释),并且因为您的项目的单元测试运行时间不够长,以至于缓存时间间隔结束。
otest.plist
但是,如果在测试运行时调用NSUserDefault
实例方法,则保证会被写入。synchronize
OCUnit 似乎不是NSUserDefaults
永久存储,而是在内存中。但是,我可能是错的。