Test-Driven iOS Development with Swift: Write maintainable, flexible, and extensible code using the power of TDD with Swift 5.5, 4th Edition
- Length: 280 pages
- Edition: 4
- Language: English
- Publisher: Packt Publishing
- Publication Date: 2022-04-18
- ISBN-10: 180323248X
- ISBN-13: 9781803232485
- Sales Rank: #1757796 (See Top 100 Books)
Build robust applications using TDD with Swift 5.5 and become a TDD expert by writing tests for view controller, views, network code, and even SwiftUI view
Key Features
- Build a complete iOS app using test-driven development
- Explore testing view controllers, table views, navigation, and network code
- Learn how to write tests for Combine and SwiftUI code
Book Description
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.
What you will learn
- Implement TDD in Swift application development
- Detect bugs before you run code using the TDD approach
- Use TDD to build models, view controllers, and views
- Test network code with asynchronous tests and stubs
- Write code that’s a joy to read and maintain
- Design functional tests to suit your software requirements
- Discover scenarios where TDD should be applied and avoided
Who this book is for
This book is for iOS developers looking to apply TDD to build maintainable and scalable applications. Intermediate-level developers with Swift application development experience will be able to make the most out of this book. Prior experience of applying TDD to Swift applications is not required.
Fourth Edition Test-Driven iOS Development with Swift Fourth Edition Contributors About the author About the reviewers Preface Who this book is for What this book covers To get the most out of this book Download the example code files Download the color images Conventions used Get in touch Share Your Thoughts Section 1 –The Basics of Test-Driven iOS Development Chapter 1: Your First Unit Tests Technical requirements Building your first automatic unit test What are unit tests? Implementing a unit test example Disabling slow UI tests Assert functions in the XCTest framework Custom assert functions Understanding the difference from other kinds of tests Integration tests UI tests Snapshot tests Manual tests Summary Exercises Chapter 2: Understanding Test-Driven Development The origin of TDD The TDD workflow – red, green, refactor Red Green Refactor The advantages of TDD The disadvantages of TDD What to test Summary Chapter 3: Test-Driven Development in Xcode Technical requirements An example of TDD Capitalize headline – red Capitalize headline – green Capitalize headline – refactor Capitalize headline 2 – red Capitalize headline 2 – green Capitalize headline 2 – refactor A recap Finding information about tests in Xcode Test navigator Test overview Running tests Running one specific test Running all tests in a test case Running a group of tests Setting up and tearing down Debugging tests A breakpoint that breaks on test failure The test again feature Summary Exercises Section 2 –The Data Model Chapter 4: The App We Are Going to Build Technical requirements A list of to-do items A view for the details of a to-do item A view to add to-do items The structure of the app The table view controller, the delegate, and the data source Table view cells The model Other views The development strategy Getting started in Xcode Setting up useful Xcode behaviors for testing Useful build behaviors Testing behaviors Summary Exercises Chapter 5: Building a Structure for ToDo Items Technical requirements Implementing the ToDoItem struct Adding a title property Adding an itemDescription property Removing a hidden source of bugs Adding a timestamp property Dealing with optional values in unit tests Adding a location property Implementing the Location struct Adding a coordinate property Summary Exercises Chapter 6: Testing, Loading, and Saving Data Technical requirements Publishing changes with Combine Testing asynchronous Combine code Making ToDoItem equatable Checking items Storing and loading ToDoItems Implementing storing and loading Cleaning up the code Summary Exercises Section 3 –Views and View Controllers Chapter 7: Building a Table View Controller for the To-Do Items Technical requirements Adding the table view for the to-do items Testing the data source of a table view Adding a test double Using test doubles to implement a number of rows Using test doubles to implement setting up the to-do item cell Refactoring to a diffable data source Presenting two sections Implementing the delegate of a table view Summary Exercises Chapter 8: Building a Simple Detail View Technical requirements Adding labels, a button, and a map Filling in the data Checking the to-do item Summary Exercises Chapter 9: Test-Driven Input View in SwiftUI Technical requirement Adding the ViewInspector package Using ViewInspector to test a simple view Adding a title text field Adding a DatePicker Improving the test code and the implementation Adding another text field Improving the user interface Adding an address text field and a button Testing button actions with ViewInspector Summary Exercises Section 4 –Networking and Navigation Chapter 10: Testing Networking Code Mocking CLGeoCoder Cleaning your project Preparations for the tests Creating the first test Testing async/await code that communicates with URLSession Handling errors Summary Exercises Chapter 11: Easy Navigation with Coordinators Technical requirement Testing the app's setup Navigating to the details Navigating to a modal view Adding missing parts Making the cells visible Dismissing the input view Making the due date visible in the details Fixing the wrong item being selected Fixing the layout of the table view Summary Exercises Why subscribe? Other Books You May Enjoy Packt is searching for authors like you
Donate to keep this site alive
How to download source code?
1. Go to: https://github.com/PacktPublishing
2. In the Find a repository… box, search the book title: Test-Driven iOS Development with Swift: Write maintainable, flexible, and extensible code using the power of TDD with Swift 5.5, 4th Edition
, sometime you may not get the results, please search the main title.
3. Click the book title in the search results.
3. Click Code to download.
1. Disable the AdBlock plugin. Otherwise, you may not get any links.
2. Solve the CAPTCHA.
3. Click download link.
4. Lead to download server to download.