Best Swift-snapshot-testing code snippet using CancellingWKWebViewNavigationDelegate.viewWillAppear
SnapshotTestingTests.swift
Source:SnapshotTestingTests.swift  
...748  func testUIViewControllerLifeCycle() {749    #if os(iOS)750    class ViewController: UIViewController {751      let viewDidLoadExpectation: XCTestExpectation752      let viewWillAppearExpectation: XCTestExpectation753      let viewDidAppearExpectation: XCTestExpectation754      let viewWillDisappearExpectation: XCTestExpectation755      let viewDidDisappearExpectation: XCTestExpectation756      init(viewDidLoadExpectation: XCTestExpectation,757           viewWillAppearExpectation: XCTestExpectation,758           viewDidAppearExpectation: XCTestExpectation,759           viewWillDisappearExpectation: XCTestExpectation,760           viewDidDisappearExpectation: XCTestExpectation){761        self.viewDidLoadExpectation = viewDidLoadExpectation762        self.viewWillAppearExpectation = viewWillAppearExpectation763        self.viewDidAppearExpectation = viewDidAppearExpectation764        self.viewWillDisappearExpectation = viewWillDisappearExpectation765        self.viewDidDisappearExpectation = viewDidDisappearExpectation766        super.init(nibName: nil, bundle: nil)767      }768      required init?(coder: NSCoder) {769        fatalError("init(coder:) has not been implemented")770      }771      override func viewDidLoad() {772        super.viewDidLoad()773        viewDidLoadExpectation.fulfill()774      }775      override func viewWillAppear(_ animated: Bool) {776        super.viewWillAppear(animated)777        viewWillAppearExpectation.fulfill()778      }779      override func viewDidAppear(_ animated: Bool) {780        super.viewDidAppear(animated)781        viewDidAppearExpectation.fulfill()782      }783      override func viewWillDisappear(_ animated: Bool) {784        super.viewWillDisappear(animated)785        viewWillDisappearExpectation.fulfill()786      }787      override func viewDidDisappear(_ animated: Bool) {788        super.viewDidDisappear(animated)789        viewDidDisappearExpectation.fulfill()790      }791    }792    let viewDidLoadExpectation = expectation(description: "viewDidLoad")793    let viewWillAppearExpectation = expectation(description: "viewWillAppear")794    let viewDidAppearExpectation = expectation(description: "viewDidAppear")795    let viewWillDisappearExpectation = expectation(description: "viewWillDisappear")796    let viewDidDisappearExpectation = expectation(description: "viewDidDisappear")797    viewWillAppearExpectation.expectedFulfillmentCount = 4798    viewDidAppearExpectation.expectedFulfillmentCount = 4799    viewWillDisappearExpectation.expectedFulfillmentCount = 4800    viewDidDisappearExpectation.expectedFulfillmentCount = 4801    let viewController = ViewController(802      viewDidLoadExpectation: viewDidLoadExpectation,803      viewWillAppearExpectation: viewWillAppearExpectation,804      viewDidAppearExpectation: viewDidAppearExpectation,805      viewWillDisappearExpectation: viewWillDisappearExpectation,806      viewDidDisappearExpectation: viewDidDisappearExpectation807    )808    assertSnapshot(matching: viewController, as: .image)809    assertSnapshot(matching: viewController, as: .image)810    wait(for: [811      viewDidLoadExpectation,812      viewWillAppearExpectation,813      viewDidAppearExpectation,814      viewWillDisappearExpectation,815      viewDidDisappearExpectation,816    ], timeout: 1.0, enforceOrder: true)817    #endif818  }819  func testCALayer() {820    #if os(iOS)821    let layer = CALayer()822    layer.frame = CGRect(x: 0, y: 0, width: 100, height: 100)823    layer.backgroundColor = UIColor.red.cgColor824    layer.borderWidth = 4.0825    layer.borderColor = UIColor.black.cgColor826    assertSnapshot(matching: layer, as: .image)...SnapshotKitTests.swift
Source:SnapshotKitTests.swift  
...426    }427    func testUIViewControllerLifeCycle() {428        class ViewController: UIViewController {429            let viewDidLoadExpectation: XCTestExpectation430            let viewWillAppearExpectation: XCTestExpectation431            let viewDidAppearExpectation: XCTestExpectation432            let viewWillDisappearExpectation: XCTestExpectation433            let viewDidDisappearExpectation: XCTestExpectation434            init(435                viewDidLoadExpectation: XCTestExpectation,436                viewWillAppearExpectation: XCTestExpectation,437                viewDidAppearExpectation: XCTestExpectation,438                viewWillDisappearExpectation: XCTestExpectation,439                viewDidDisappearExpectation: XCTestExpectation440            ) {441                self.viewDidLoadExpectation = viewDidLoadExpectation442                self.viewWillAppearExpectation = viewWillAppearExpectation443                self.viewDidAppearExpectation = viewDidAppearExpectation444                self.viewWillDisappearExpectation = viewWillDisappearExpectation445                self.viewDidDisappearExpectation = viewDidDisappearExpectation446                super.init(nibName: nil, bundle: nil)447            }448            @available(*, unavailable)449            required init?(coder _: NSCoder) {450                fatalError("init(coder:) has not been implemented")451            }452            override func viewDidLoad() {453                super.viewDidLoad()454                viewDidLoadExpectation.fulfill()455            }456            override func viewWillAppear(_ animated: Bool) {457                super.viewWillAppear(animated)458                viewWillAppearExpectation.fulfill()459            }460            override func viewDidAppear(_ animated: Bool) {461                super.viewDidAppear(animated)462                viewDidAppearExpectation.fulfill()463            }464            override func viewWillDisappear(_ animated: Bool) {465                super.viewWillDisappear(animated)466                viewWillDisappearExpectation.fulfill()467            }468            override func viewDidDisappear(_ animated: Bool) {469                super.viewDidDisappear(animated)470                viewDidDisappearExpectation.fulfill()471            }472        }473        let viewDidLoadExpectation = expectation(description: "viewDidLoad")474        let viewWillAppearExpectation = expectation(description: "viewWillAppear")475        let viewDidAppearExpectation = expectation(description: "viewDidAppear")476        let viewWillDisappearExpectation = expectation(description: "viewWillDisappear")477        let viewDidDisappearExpectation = expectation(description: "viewDidDisappear")478        viewWillAppearExpectation.expectedFulfillmentCount = 2479        viewDidAppearExpectation.expectedFulfillmentCount = 2480        viewWillDisappearExpectation.expectedFulfillmentCount = 2481        viewDidDisappearExpectation.expectedFulfillmentCount = 2482        let viewController = ViewController(483            viewDidLoadExpectation: viewDidLoadExpectation,484            viewWillAppearExpectation: viewWillAppearExpectation,485            viewDidAppearExpectation: viewDidAppearExpectation,486            viewWillDisappearExpectation: viewWillDisappearExpectation,487            viewDidDisappearExpectation: viewDidDisappearExpectation488        )489        assertSnapshot(matching: viewController, as: .image)490        assertSnapshot(matching: viewController, as: .image)491        wait(492            for: [493                viewDidLoadExpectation,494                viewWillAppearExpectation,495                viewDidAppearExpectation,496                viewWillDisappearExpectation,497                viewDidDisappearExpectation498            ],499            timeout: 1,500            enforceOrder: true501        )502    }503    func testCALayer() {504        let layer = CALayer()505        layer.frame = CGRect(x: 0, y: 0, width: 100, height: 100)506        layer.backgroundColor = UIColor.red.cgColor507        layer.borderWidth = 4.0508        layer.borderColor = UIColor.black.cgColor...viewWillAppear
Using AI Code Generation
1import UIKit2import WebKit3class ViewController: UIViewController, WKNavigationDelegate {4    override func loadView() {5        webView = WKWebView()6        webView.navigationDelegate = CancellingWKWebViewNavigationDelegate()7    }8    override func viewDidLoad() {9        super.viewDidLoad()10        webView.load(URLRequest(url: url))11    }12}13class CancellingWKWebViewNavigationDelegate: NSObject, WKNavigationDelegate {14    func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {15        if url?.host == "www.hackingwithswift.com" {16            decisionHandler(.allow)17        } else {18            decisionHandler(.cancel)19        }20    }21}22import UIKit23import WebKit24class ViewController: UIViewController, WKNavigationDelegate {25    override func loadView() {26        webView = WKWebView()27    }28    override func viewDidLoad() {29        super.viewDidLoad()30        webView.load(URLRequest(url: url))31    }32    func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {33        if url?.host == "www.hackingwithswift.com" {34            decisionHandler(.allow)35        } else {36            decisionHandler(.cancel)37        }38    }39}40import UIKit41import WebKit42class ViewController: UIViewController, WKNavigationDelegate {43    override func loadView() {44        webView = WKWebView()45    }46    override func viewDidLoad() {47        super.viewDidLoad()48        webView.load(URLRequest(url: url))49    }50    func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction,viewWillAppear
Using AI Code Generation
1override func viewWillAppear(_ animated: Bool) {2        super.viewWillAppear(animated)3        self.navigationController?.setNavigationBarHidden(true, animated: animated)4        self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)5        self.navigationController?.navigationBar.shadowImage = UIImage()6    }7    override func viewWillDisappear(_ animated: Bool) {8        super.viewWillDisappear(animated)9        self.navigationController?.setNavigationBarHidden(false, animated: animated)10        self.navigationController?.navigationBar.setBackgroundImage(nil, for: .default)11    }12    override func viewDidLoad() {13        super.viewDidLoad()14        self.navigationController?.setNavigationBarHidden(true, animated: false)15        self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)16        self.navigationController?.navigationBar.shadowImage = UIImage()17        self.navigationController?.setNavigationBarHidden(true, animated: false)18        self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for:Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!
