This screencast is part of a skill pack called iOS Testing.
In this screencast, we’re going to look at writing unit tests for asynchronous behaviors in an app.
Xcode UI tests are asynchronous in that they simulate end user interaction with your application. In this screencast, learn how to write tests that exercise your app at the user interface level, handling asynchronous behaviors that take varying amounts of time.
Whether you’ve never written a unit test, or are just looking for a way to add unit tests to some existing troublesome code, this video will walk you through the fundamentals of unit testing on iOS with realistic example code to help you learn how to write valuable and effective tests.
Explore other screencasts related to this topic.
Tight coupling between view controllers in your application can lead to difficult maintenance as you add and remove features. This video will explore how using Protocols can make our Dependency Injection more loosely coupled. This improves the flexibility of the code and makes our application easier to change.
Incorrectly managing memory in our applications can result in hard to find bugs and possible crashes. In this video, we will explore the Memory Graph debugging tool in Xcode and how you can use it to find and fix strong reference cycles in closures.
When you have a complex view controller view, sometimes it is helpful to break up the view into manageable chunks. In this video we will show how you can use container views to simplify the construction of certain layouts. After this video you will know when and how to use these container views in your applications.
Performing tasks when an application is first launched is a common practice to give users important information about the application. In this video, we will discuss one technique for implementing first launch logic, as well as how to quickly test this code.
UIStackViews are a relatively new addition to UIKit, appearing with iOS 9. They are quite useful because they eliminate the need for many Auto Layout constraints in common screen designs, making them easier to modify and maintain.
We demonstrate using Dispatch Groups to rendezvous multiple simultaneous asynchronous tasks so that you can process all of their results at once, after the last one finishes.