Test Driven Development in iOS Using Swift

Covers: Unit Tests, UI Tests, Mocking, Code Coverage and End to End Testing

As a software developer you must always aspire to write quality code. You must also make sure that any future code you write does not break existing features. Test Driven Development provides you with a great way to implement software. It provides a safety net, which allows you to make changes with confidence. In this course, you will learn how to apply the principles of test driven development in iOS using Swift language.

What you’ll learn

  • Learn the benefits and the reasoning behind writing tests.
  • Implementing unit tests for the core domain model.
  • Writing tests for the user interface.
  • Understanding mocking and benefits of mocking.
  • Implementing domain driven design.

Course Content

  • Introduction –> 4 lectures • 5min.
  • Understanding Test Driven Development? –> 6 lectures • 23min.
  • Types of Testing –> 6 lectures • 22min.
  • Tip Calculator – Writing Your First Unit Test –> 5 lectures • 39min.
  • Tip Calculator – Writing UI Tests –> 6 lectures • 49min.
  • Recording User Interface Tests and Code Coverage –> 3 lectures • 15min.
  • Mocking –> 7 lectures • 52min.
  • Todo App – End to End Testing –> 7 lectures • 42min.
  • Quiz App – Unit Testing the Domain –> 5 lectures • 38min.
  • Quiz App – User Interface Testing –> 4 lectures • 37min.
  • Conclusion –> 2 lectures • 4min.

Auto Draft

Requirements

As a software developer you must always aspire to write quality code. You must also make sure that any future code you write does not break existing features. Test Driven Development provides you with a great way to implement software. It provides a safety net, which allows you to make changes with confidence. In this course, you will learn how to apply the principles of test driven development in iOS using Swift language.

 

Let’s check out the contents of the course:

 

  1. Understanding Test Driven Development

In this section you will learn about the concepts behind Test Driven Development. You will learn why testing is important, when to write unit tests and even misconceptions behind testing in software development.

 

  1. Types of Testing

In this section you will learn about types of testing. You will learn the differences between unit testing, user interface testing, integration testing, acceptance testing and performance testing.

 

  1. Writing Your First Unit Test

In this section you will learn how to write your first unit test. We will implement a simple Tip Calculator and write your code using the principles of test driven development. You will learn how using test driven development allows you to architect your app.

 

  1. Writing UI Tests

In this section you will learn how to write user interface tests. You will learn how to automate your user interface and perform actions on the elements on the screen. You will also learn how to use the PageObject pattern to reuse elements from the screen.

 

  1. Mocking

In this section you will learn the concept of mocking. You will learn how to create a mocked version of the login service, which will allow the user to continue with their tests without having a dependency on a real login service and network connection.

 

  1. End to End Testing

In this section you will learn how to perform end to end integration testing. You will learn how to invoke a real network service and make sure that all components of the app are working correctly together.

 

  1. Project Time – Quiz App

Finally, you are going to put all your skills to test by implementing a Quiz App in SwiftUI using the principles of test driven development. You will start by testing the core domain and then move on to write user interface tests.

 

Who is this course for?

  • Developers interested in learning about writing great software based on the principles of test driven development.
  • Developers interested in learning about the application domain using unit tests.
  • Developers who want to educate themselves on how to architect an application using test driven development.
  • Developers who want to take their skills to the next level

 

I had so much fun in creating this course and I really hope you enjoy it too.

Thanks and let’s start coding!