如何为 UserDefaults 编写单元测试

How to write Unit Test for UserDefaults

我有 2 个函数,其中一个基本上在用户默认值中检索字符串,另一个在用户默认值中写入字符串。我无法理解我是否应该进行单元测试?我对单元测试的概念还很陌生。

我在互联网上搜索以测试用户默认值,但最后有人建议我模拟测试。

我的问题是如果有测试用户默认值的方法,最好的方法是什么?

常量和结构

let defaults = UserDefaults.standard
let defaultinformation = "ABCDEFG"

struct Keys {
    static let Information = "Information"
}

保存信息的函数

func SetDefaultInformation() {
    defaults.set(defaultinformation, forKey: Keys.Information)

}

检索信息的函数

func checkForInformation() -> String {
    let Information = defaults.value(forKey: Keys.Information) as? String ?? ""
    return Information
}

提前致谢

should I do the unit test or no

没有。您知道 UserDefaults 的作用,您知道 如何 它的工作原理以及 那个 它的工作原理。测试Apple的代码是荒谬的。测试 defaults.set 同样愚蠢;您确切地知道它的作用并且您知道它会做到。

您要测试的是您的 代码:不是您从 UserDefaults 本身的检索,而是您对该检索的响应。给自己一些方法,这样你就可以看到当 information 是字符串时 you 做了什么,当 informationyou 做了什么是 nil。如您所知,一个简单的模拟可以提供后端,扮演 UserDefaults 的角色并返回不同类型的结果。只是不要让您的测试涉及 真实 UserDefaults。