この「成功」シナリオのテストケースを作成するにはどうすればよいですか?XCTestでテーブルビューデリゲートをオーバーライドする方法
if ([tblView.delegate respondsToSelector:@selector(tableView:viewForHeaderInSection:)]) {
...
}else{
...
}
私は迅速に以下のモックデリゲートを作成することで試してみました:
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)")
それがnilを印刷します。同じ模擬私は、データソースをしようとしていると、それはデータソースobjを返しています。なぜデリゲートがnilを返すのですか?このシナリオをテストする方法は?
if tblView.delegateはnilではありませんか? non-nilの場合、その型は 'MockTableViewDelegate'ですか? –
は、そのnilだけです。 –
は、ストーリーボードまたはコードを介して設定されたtblViewの代理プロパティですか?時間とコンテキストは、デリゲートとデータソースのプロパティで重要な役割を果たします。テストケースはいつ実行されますか? – satheeshwaran