Book Image

Test-Driven iOS Development with Swift

By : Dr. Dominik Hauser
Book Image

Test-Driven iOS Development with Swift

By: Dr. Dominik Hauser

Overview of this book

Test-driven development (TDD) is a proven way to find software bugs early. Writing tests before your code improves the structure and maintainability of your app. Test-Driven iOS Development with Swift will help you understand the process of TDD and how it impacts your applications written in Swift. Through practical, real-world examples, you’ll start seeing how to implement TDD in context. We will begin with an overview of your TDD workflow and then deep-dive into unit testing concepts and code cycles. We will showcase the workings of functional tests, which will help you improve the user interface. Finally, you will learn about automating deployments and continuous integration to run an environment.
Table of Contents (15 chapters)
Test-Driven iOS Development with Swift
Credits
About the Author
About the Reviewer
www.PacktPub.com
Preface
Index

Implementing the ToDoItem struct


A to-do app needs a model class/struct to store information for to-do items.

We start by adding a new test case to the test target. Open the To-Do project that we have created in the Getting Started with Xcode section of Chapter 2, Planning and Structuring Your Test-Driven iOS App, and select the ToDoTests group. Go to File | New | File..., navigate to iOS | Source | Unit Test Case Class, and click on Next. Put in the name ToDoItemTests, make it a subclass of XCTestCase, select Swift as the language, and click on Next. In the next window, create a new folder, called Model, and click on Create.

Now, delete the ToDoTests.swift template test case.

At the time of writing this chapter, if you delete ToDoTests.swift before you add the first test case in a test target, you will see a pop-up from Xcode telling you that adding the Swift file will create a mixed Swift and Objective-C target:

Tip

This is a bug in Xcode 7.0. It seems that when you add the first Swift file...