如何为 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 做了什么,当 information
时 you 做了什么是 nil
。如您所知,一个简单的模拟可以提供后端,扮演 UserDefaults 的角色并返回不同类型的结果。只是不要让您的测试涉及 真实 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 做了什么,当 information
时 you 做了什么是 nil
。如您所知,一个简单的模拟可以提供后端,扮演 UserDefaults 的角色并返回不同类型的结果。只是不要让您的测试涉及 真实 UserDefaults。