You can watch this episode by subscribing to Cocoacasts Plus.
Building a Modern Networking Layer in Swift
Writing Unit Tests for Private Methods
1 | Exploring the API 06:30 |
---|---|
2 | Fetching a List of Episodes 08:01 |
3 | Handling Errors 09:24 |
4 | Creating an API Client 09:27 |
5 | Making the API Client Extensible 08:04 |
6 | Authenticating the User 10:07 |
7 | Better Error Handling 08:16 |
8 | Working with Protected Resources 10:07 |
9 | Injecting the Access Token 09:55 |
10 | Hiding Implementation Details with Type Erasure 07:52 |
11 | Fetching Video Progress 09:49 |
12 | Creating and Updating Video Progress 06:40 |
13 | Deleting Video Progress 07:57 |
14 | Unit Testing the Networking Layer 10:32 |
15 | Unit Testing Asynchronous Code 07:45 |
16 | Stubbing the Cocoacasts API 08:42 |
17 | Writing Readable and Maintainable Unit Tests 09:29 |
18 | Enabling Code Coverage to Find Gaps 07:10 |
19 | Writing Unit Tests for Private Methods 08:33 |
20 | Writing the Wrong Unit Tests 11:55 |
21 | Writing Unit Tests for Edge Cases 08:25 |
22 | Catching Bugs with Unit Tests 11:05 |
23 | A Few More Unit Tests 11:04 |
Code coverage is a very helpful tool to detect gaps in a test suite. In the previous episode, we enabled code coverage to learn how to write better unit tests for the APIClient
class. The coverage report shows that the episodes()
method is fully covered. It also reveals that the private request(_:)
method lacks coverage. Even though the request(_:)
method is private to the APIClient
class, we can write unit tests to indirectly test it and increase coverage of the APIClient
class. That is the focus of this episode.
Instant and Unlimited Access
to 500+ Cocoacasts Tutorials
Monthly
$19 / month
Pay Once a Month
30 Day Money Back Guarantee
Yearly
$8.25 / month (billed annually)
Pay Once a Year and Save $129
30 Day Money Back
Guarantee