xcode – NSUserDefault不应该是单元测试的干净的slate?
我正在写我的第一个iOS单元测试(Xcode 5,iOS 6),发现单元测试的结果取决于我最近在模拟器中做了什么。例如。我点击模拟器中联系人列表中的用户,现在我的UserDefaults中的“最近的联系人”数据还有一个以上的对象,即使我正在运行单元测试。
对于单元测试,具有随机用户默认数据(我习惯用自己的干净db进行RoR测试)并不干净。此外,我可能想要测试具体的状态,如空的“最近的联系人”数据。 从这里看相关问题,我似乎有一些可能的答案,我不高兴。 > Mock UserDefaults进行单元测试!我必须修改许多现有的类,以便我可以注入这个模拟。 对于在单元测试中应该是标准做法的东西,这些似乎不必要地复杂化。我不想在每个单元测试中重复一遍。所以我的问题是: >我是否忘记了用户默认从ad-hoc模拟器测试到单元测试运行的方式? 解决方法
使用命名套房
like in this answer对我来说很好。删除用于测试的用户默认值也可以在func tearDown()中完成。
class MyTest : XCTestCase { var userDefaults: UserDefaults? let userDefaultsSuiteName = "TestDefaults" override func setUp() { super.setUp() UserDefaults().removePersistentDomain(forName: userDefaultsSuiteName) userDefaults = UserDefaults(suiteName: userDefaultsSuiteName) } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- ruby-on-rails – 附加mp3时触发的mp3的Paperclip validate
- vue2.0 elementUI制作面包屑导航栏
- jsonResult的asp.net mvc [handleerror] [authorize]?
- ruby-on-rails – 如何在Rails 3.2中找到“SystemStackErro
- ruby-on-rails – 添加自定义HTTP状态代码符号
- cocos2dx监听home键,锁屏,后台转前台暂停功能
- [Flex]itemEditEnd called multiple times
- 如何在swift 3中检测文本视图开始编辑和结束编辑
- STM32F4读写内部FLASH【使用库函数】
- ruby-on-rails – 处理非常长的运行耙子任务