1

我读了问题Easy way to see saved NSUserDefaults?

我找到了应用程序的 .plist 文件,但测试包的文件在哪里?

4

3 回答 3

5

如果您使用 Xcode 4 与 OCUnit 的集成,它会将测试包注入到正在运行的应用程序中。因此 NSUserDefaults 保存在应用程序本身中。这对单元测试来说是有问题的:当您手动运行应用程序时,您的默认设置可能已被您的测试覆盖。

不要直接使用,而是[NSUserDefaults standardUserDefaults]使用依赖注入,将用户默认值作为初始化参数传入。然后你可以传入一个你可以查询的测试替身。(依赖注入的替代方法是从辅助方法返回 NSUserDefaults,覆盖该方法以在必要时返回测试替身。)

于 2011-06-03T05:58:20.540 回答
2

在我的环境中(Xcode 4.2,在模拟器中运行测试)NSUserDefaults写入以下文件:

~/Library/Application Support/iPhone Simulator/Library/Preferences/otest.plist`

我猜您没有看到该文件是因为NSUserDefaults' 的缓存机制(在类参考中进行了解释),并且因为您的项目的单元测试运行时间不够长,以至于缓存时间间隔结束。

otest.plist但是,如果在测试运行时调用NSUserDefault实例方法,则保证会被写入。synchronize

于 2012-02-05T23:18:15.173 回答
1

OCUnit 似乎不是NSUserDefaults永久存储,而是在内存中。但是,我可能是错的。

于 2011-05-31T21:12:55.477 回答