[英]RxSwift Observing test cases on mocked UserDefaults
我正在观察userDefaults中的值更改
userDefaults.rx.observe(Int.self, option.userDefaultsKey)
对于单元测试,我做了userDefaultsMock,但是当更新或设置这些特定键的值时,我不知道如何发出
override func setValue(_ value: Any?, forKey key: String) {
tempArray[key] = value
}
Observable链以副作用(例如您发布的observe(_:_:)
)开头,并以副作用(无论订阅中的内容是什么)结束。在链的开头和结尾之间的所有内容都是逻辑[1]。 将该逻辑移至单独的函数,以便无需进行模拟即可对其进行测试。
[1]此规则的几个例外是do()
调用和flatMap
调用。 其他所有内容都是需要测试的逻辑。
实际上,我无法模拟rx.observe
但是做了一些工作来完成。
我使用了UserDefaults
但是使用了suiteName
所以不会打扰standard database
因此,这一技巧帮助我观察到了通知。
我从https://medium.com/@davidlin_98861/testing-userdefaults-cd86849fd896了解到
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.