小编Ter*_*rje的帖子

单元测试WKNavigationDelegate函数

我有一个UIViewController实现了一些WKNavigationDelegate函数,我想在这些函数中单元测试逻辑.这是一个例子:

func webView(_ webView: WKWebView,
             decidePolicyFor navigationAction: WKNavigationAction,
             decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
    guard let url = navigationAction.request.url else {
        decisionHandler(.cancel)
        return
    }

    if url.absoluteString != "https://my-approved-url" {
        decisionHandler(.cancel)
        return
    }

    decisionHandler(.allow)
}
Run Code Online (Sandbox Code Playgroud)

我希望我的单元测试能够确保使用基于WKNavigationAction的request.url的正确WKNavigationActionPolicy调用decisionHandler.

但是,我无法弄清楚如何测试这个功能.当我运行我的测试项目时,在webview上调用.load()不会触发委托函数.我也试图直接调用这个函数来测试它,但似乎不可能实例化我自己的新WKNavigationAction(.request是只读的).

在WKNavigationDelegate函数中单元测试逻辑的正确方法是什么?

io webkit swift

6
推荐指数
1
解决办法
994
查看次数

标签 统计

io ×1

swift ×1

webkit ×1