
对于单元测试,具有随机用户默认数据(我习惯用自己的干净db进行RoR测试)并不干净。此外,我可能想要测试具体的状态,如空的“最近的联系人”数据。
从这里看相关问题,我似乎有一些可能的答案,我不高兴。
> Mock UserDefaults进行单元测试!我必须修改许多现有的类,以便我可以注入这个模拟。
>在setUp方法中清除或自定义UserDefaults!但是,随之而来的我在手动测试中花费的数据将会消失。
>在setUp方法中清除或自定义UserDefaults,然后在tearDown中恢复这些值!哎哟。
对于在单元测试中应该是标准做法的东西,这些似乎不必要地复杂化。我不想在每个单元测试中重复一遍。所以我的问题是:
>我是否忘记了用户默认从ad-hoc模拟器测试到单元测试运行的方式?
>有没有可配置的方法来解决这个问题,有一些方法可以设置单元测试目标,以便在使用模拟器手动测试时,为UserDefaults设置不同的存储位置?
>没有,在代码中有没有一个优雅的方式来做到这一点?
>例如,我可以有一个从XCTestCase继承的MyAppTestCase对象,并覆盖setUp和tearDown方法,以便始终将其放在一边,然后还原UserDefaults。这是一个好主意吗?
class MyTest : XCTestCase { var userDefaults: UserDefaults? let userDefaultsSuitename = "TestDefaults" overrIDe func setUp() { super.setUp() UserDefaults().removePersistentDomain(forname: userDefaultsSuitename) userDefaults = UserDefaults(suitename: userDefaultsSuitename) }} 总结 以上是内存溢出为你收集整理的xcode – NSUserDefault不应该是单元测试的干净的slate?全部内容,希望文章能够帮你解决xcode – NSUserDefault不应该是单元测试的干净的slate?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)