【发布时间】:2016-05-03 13:27:45
【问题描述】:
如何为这种“成功”场景编写测试用例?
if ([tblView.delegate respondsToSelector:@selector(tableView:viewForHeaderInSection:)]) {
...
}else{
...
}
我尝试过在 swift 中创建以下模拟委托:
class MockTableViewDelegate:NSObject, UITableViewDelegate {
@objc func tableView(tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
return 30
}
// MARK: Delegates
@objc func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
return UIView()
}
}
代码:
mockTableView.delegate=MockTableViewDelegate()
print("delegate===\(mockTableView.delegate)")
它打印零。我为数据源尝试过的相同模型,它正在返回数据源 obj。为什么代表返回零?以及如何测试这种情况?
【问题讨论】:
-
tblView.delegate是否在 if 中?如果非零,它的类型是MockTableViewDelegate? -
tblView 的委托属性是通过 Storyboard 还是 Code 设置的?时间和上下文在委托和数据源属性中起着重要作用。测试用例在什么时候运行?
标签: ios swift uitableview delegates xctestcase