Reader small image

You're reading from  Test-Driven iOS Development with Swift - Fourth Edition

Product typeBook
Published inApr 2022
PublisherPackt
ISBN-139781803232485
Edition4th Edition
Right arrow
Author (1)
Dr. Dominik Hauser
Dr. Dominik Hauser
author image
Dr. Dominik Hauser

Dr. Dominik Hauser is an iOS developer working for a small company in western Germany. In over 11 years as an iOS developer, he has worked on many different apps, both large and small. In his spare time, Dominik builds small (often silly) apps and explores how he can become a better iOS developer. He talks at conferences, writes books, and is active in the iOS community in general. His most successful open source component (in terms of stars) is a pull-to-refresh control for a table view that consists of an actual SpriteKit game. Before Dominik became an iOS developer, he was a physicist, researching the most powerful photon sources within our galaxy.
Read more about Dr. Dominik Hauser

Right arrow

Handling errors

To test the handling of errors in the URLSession call to the web service, we first need to enhance URLSessionProtocolMock. Follow these steps to test that an error in fetching data is passed down to the caller of the APIClient instance:

  1. Add the following property to URLSessionProtocolMock:
    // URLSessionProtocolMock.swift
    var dataForDelegateError: Error?
  2. Next, add the following handling of the error to the start of data(for:delegate:):
    // URLSessionProtocolMock.swift
    if let error = dataForDelegateError {
      throw error
    }

If there is an error set to the dataForDelegateError property, we throw it before we do anything else in this method.

  1. Now, we are ready to add the test method to APIClientTests:
    // APIClientTests.swift
    func test_toDoItems_whenError_shouldPassError() async
     throws {
      let urlSessionMock = URLSessionProtocolMock()
      let expected = NSError(domain: "", code: 1234)
      urlSessionMock.dataForDelegateError...
lock icon
The rest of the page is locked
Previous PageNext Page
You have been reading a chapter from
Test-Driven iOS Development with Swift - Fourth Edition
Published in: Apr 2022Publisher: PacktISBN-13: 9781803232485

Author (1)

author image
Dr. Dominik Hauser

Dr. Dominik Hauser is an iOS developer working for a small company in western Germany. In over 11 years as an iOS developer, he has worked on many different apps, both large and small. In his spare time, Dominik builds small (often silly) apps and explores how he can become a better iOS developer. He talks at conferences, writes books, and is active in the iOS community in general. His most successful open source component (in terms of stars) is a pull-to-refresh control for a table view that consists of an actual SpriteKit game. Before Dominik became an iOS developer, he was a physicist, researching the most powerful photon sources within our galaxy.
Read more about Dr. Dominik Hauser