Book Image

Test-Driven iOS Development with Swift - Fourth Edition

By : Dr. Dominik Hauser
5 (1)
Book Image

Test-Driven iOS Development with Swift - Fourth Edition

5 (1)
By: Dr. Dominik Hauser

Overview of this book

Test-driven development (TDD) is a proven way to find software bugs earlier on in software development. Writing tests before you code improves the structure and maintainability of your apps, and so using TDD in combination with Swift 5.5's improved syntax leaves you with no excuse for writing bad code. Developers working with iOS will be able to put their knowledge to work with this practical guide to TDD in iOS. This book will help you grasp the fundamentals and show you how to run TDD with Xcode. You'll learn how to test network code, navigate between different parts of the app, run asynchronous tests, and much more. Using practical, real-world examples, you'll begin with an overview of the TDD workflow and get to grips with unit testing concepts and code cycles. You'll then develop an entire iOS app using TDD while exploring different strategies for writing tests for models, view controllers, and networking code. Additionally, you'll explore how to test the user interface and business logic of iOS apps and even write tests for the network layer of the sample app. By the end of this TDD book, you'll be able to implement TDD methodologies comfortably in your day-to-day development for building scalable and robust applications.
Table of Contents (17 chapters)
1
Section 1 –The Basics of Test-Driven iOS Development
5
Section 2 –The Data Model
9
Section 3 –Views and View Controllers
13
Section 4 –Networking and Navigation

The disadvantages of TDD

Just like everything else in the world, TDD has some disadvantages. The main ones are listed here:

  • No silver bullet: Tests help to find bugs, but they can't find all bugs that you introduce in the test code and implementation code. If you haven't understood the problem you need to solve, writing tests most probably won't help.
  • It seems slower at the beginning: When you start TDD, you will get the feeling that it takes longer to make easy implementations. You need to think about the interfaces, write the test code, and run the tests before you can finally start writing the code.
  • All the members of a team need to do it: As TDD influences the design of code, it is recommended that either all the members of a team use TDD or no one at all. In addition to this, it's sometimes difficult to justify TDD to management because they often have the feeling that the implementation of new features takes longer if developers write code...