Skip to main content

Introducing new learning courses and educational videos from Apress. Start watching

  • Book
  • © 2021

Test-Driven Development in Swift

Compile Better Code with XCTest and TDD

Apress

Authors:

  • Test any kind of software, simple or complicated, pure logic or interfacing, with third-party dependencies

  • Gain helpful guidance from compiler errors as from failing tests

  • Solve problems incrementally by writing only as much code as necessary

Buying options

eBook USD 34.99
Price excludes VAT (USA)
  • ISBN: 978-1-4842-7002-8
  • Instant PDF download
  • Readable on all devices
  • Own it forever
  • Exclusive offer for individuals only
  • Tax calculation will be finalised during checkout
Softcover Book USD 44.99
Price excludes VAT (USA)

This is a preview of subscription content, access via your institution.

Table of contents (16 chapters)

  1. Front Matter

    Pages i-xix
  2. Why Test-Driven Development?

    • Gio Lodi
    Pages 1-12
  3. XCTest Introduction

    • Gio Lodi
    Pages 13-25
  4. Changing Tests with Fixtures

    • Gio Lodi
    Pages 69-78
  5. Testing Static SwiftUI Views

    • Gio Lodi
    Pages 79-95
  6. Testing Dynamic SwiftUI Views

    • Gio Lodi
    Pages 97-117
  7. Testing Code Based on Indirect Inputs

    • Gio Lodi
    Pages 119-132
  8. Testing JSON Decoding

    • Gio Lodi
    Pages 133-150
  9. Testing Network Code

    • Gio Lodi
    Pages 151-166
  10. Testing Side Effects

    • Gio Lodi
    Pages 185-195
  11. Conclusion

    • Gio Lodi
    Pages 235-241
  12. Back Matter

    Pages 243-288

About this book

Leverage Swift to practice effective and efficient test-driven development (TDD) methodology. Software testing and TDD are evergreen programming concepts—yet Swift developers haven't widely adopted them. What's needed is a clear roadmap to learn and adopt TDD in the Swift world. Over the past years, Apple has invested in XCTest and Xcode's testing infrastructure, making testing a new top priority in their ecosystem. Open-source libraries such as Quick and Nimble have also reached maturity. The tools are there. This book will show you how to wield them. 

TDD has much more to offer than catching bugs. With this book, you’ll learn a philosophy for building software. TDD enables engineers to solve problems incrementally, writing only as much code as necessary. By decomposing big problems into small steps, you can move along at a fast pace, always making visible progress. 

Participate in the test-driven development journey by building a real iOS application and incorporating new concepts through each chapter. The book's concepts will emerge as you figure out ways to use tests to drive the solutions to the problems of each chapter. Through the TDD of a single application, you’ll be introduced to all the staples and advanced concepts of the craft, understand the trade offs each technique offers, and review an iterative process of software development. 

Test-Driven Development in Swift provides the path for a highly efficient way to make amazing apps.

What You'll Learn

  • Write tests that are easy to maintain
  • Look after an ever-growing test suite
  • Build a testing vocabulary that can be applied outside the Swift world
  • See how Swift programming enhances the TDD flow seen in dynamic languages 
  • Discover how compiler errors can provide the same helpful guidance as failing tests do

Who This Book Is For

Mid-level developers keen to write higher quality code and improve their workflows. Also, developers that have already been writing tests but feel they are not getting the most out of them. 

Keywords

  • Swift
  • iOS
  • Compiler
  • Dependency Injection
  • Mocks
  • App
  • development
  • programming
  • coding
  • networking
  • UIViewController
  • TDD
  • test-driven development
  • XCTest

Authors and Affiliations

  • Mount Martha, Australia

    Gio Lodi

About the author

Gio Lodi spent the past decade writing tests. He began with full-stack web development before moving into iOS programming and, more recently, into mobile infrastructure engineering. Ruby on Rails introduced him to the TDD world, and he fell in love with the fast-paced feedback loop. Any big problem could be decomposed in smaller and smaller parts until it got to an achievable size. Due to the lack of tools he first encountered moving into the Apple ecosystem, Gio researched and experimented with testing strategies and tools document in an ongoing project that catalogued on his blog and in talks and workshops at various industry conferences. 

Bibliographic Information

  • Book Title: Test-Driven Development in Swift

  • Book Subtitle: Compile Better Code with XCTest and TDD

  • Authors: Gio Lodi

  • DOI: https://doi.org/10.1007/978-1-4842-7002-8

  • Publisher: Apress Berkeley, CA

  • eBook Packages: Professional and Applied Computing, Professional and Applied Computing (R0), Apress Access Books

  • Copyright Information: Gio Lodi 2021

  • Softcover ISBN: 978-1-4842-7001-1Published: 02 July 2021

  • eBook ISBN: 978-1-4842-7002-8Published: 01 July 2021

  • Edition Number: 1

  • Number of Pages: XIX, 288

  • Number of Illustrations: 18 b/w illustrations

  • Topics: Apple and iOS

Buying options

eBook USD 34.99
Price excludes VAT (USA)
  • ISBN: 978-1-4842-7002-8
  • Instant PDF download
  • Readable on all devices
  • Own it forever
  • Exclusive offer for individuals only
  • Tax calculation will be finalised during checkout
Softcover Book USD 44.99
Price excludes VAT (USA)