【发布时间】:2017-01-12 19:22:25
【问题描述】:
我正在关注 Swift 中的一个示例模拟,它在调用我们正在测试的函数时将变量设置为 true,但我不清楚的是,我们似乎覆盖了子类中的函数,即模拟,然后我们返回其父级对该方法的再现。我假设覆盖的工作方式是我们用我们想要的逻辑重写函数,当我们这样做时,我假设包含原始函数的父类完全不知道子类如何处理函数?
这里是示例代码:
extension ItemListDataProviderTests{
class MockTableView: UITableView {
var cellGotDequeued = false
override func dequeueReusableCell(withIdentifier identifier: String, for indexPath: IndexPath) -> UITableViewCell {
cellGotDequeued = true
return super.dequeueReusableCell(withIdentifier: identifier, for: indexPath)
}
}
返回父方法如何调用被覆盖的函数并将测试变量设置为true?我假设通过调用 super 它将运行父级的逻辑并且不会触发子级的覆盖方法。
【问题讨论】:
-
我想,我知道这段代码。 :) 太棒了!
-
确实!第二次阅读您的书,通过编写测试更好地理解 OOP,非常好。