Chapter 1 - Introduction to Testing 1. Testing - Doing the same thing over and over again expecting the same results 2. Where Testing meets us and why it’s important 3. Different Types of Testing Methods 4. Say hello to XCTest Framework
Chapter 2 - Setup a testing infrastructure 1. All About testing targets 2. Testing Code Organization
Chapter 3 - Prepare your code for testing 1. Using interactors and entities 2. Mark private methods 3. Mocks and Spies
Chapter 4 - Unit Tests 1. What are unit tests? 2. What functions should be covered? 3. Write our first unit test 4. Code Coverage 5. Write several tests for the same function 6. Testing A-Sync functions 7. Best Practices
Chapter 5 - Performance Tests
1. Importance of Performance Tests 2. What metrics can we measure? 3. Meet XCTMetric Protocol 4. Write our first Performance test 5. Set Baseline
6. Best Practices
Chapter 6 - Integration Tests
1. What are the differences between unit tests and Integration Tests 2. How to set the ground for integration tests 3. We still have mocks 4. What integrations are common to test?
Chapter 7 - UI Tests
1. What are UI Tests 2. It all starts with accessibility 3. UI Testing Challenges
4. Simulate your backend 5. Meet Page Object Model 6. UI Testing Best Practices
Chapter 8 - Snapshot Testing
1. Snapshot Testing - Closest to real QA Manual Regression 2. iOS-snapshot-test-case - Facebook and Uber solution 3. How to use it? 4. Pros and Cons
Chapter 9 - Share Tests between iOS and Android
1. Shared code - out, shared tests - in. 2. It all starts with consistent API 3. Prepare your unit tests for that 4. Setup a dedicated repository
5. Best practices
10. Chapter 10 - Test-Driven Development (TDD)
1. In short - what is TDD? 2. TDD Advantages 3. TDD is not a type of test, it’s a development method 4. TDD Process
Avi Tsadok is an accomplished iOS Developer with almost a decade of experience. He currently heads mobile developemnt at Any.do, a leading productivity app. He's also a regular contributor to "Better Programming" and has an active presence on Medium. Having written many iOS articles, he's decided to combine his passion for writing and developing by writing his first book.
Discover what tools there are for unit testing in iOS, and how to work in a test-driven environment. This book reveals how testing is a crucial capability in any iOS developer’s toolset, and a minimum requirement in iOS interviews.
A few years ago, tests on mobile platforms were not very popular. It wasn’t a technical constraint, more a cultural one. But these days it’s a crucial skill set, especially when projects become big and hard to maintain. This book shows you how to set up a testing target in XCode unit tests. You'll learn how to write unit tests properly and incorporate concepts like spies and mocks and code coverage. You'll also learn the philosophy behind the architecture of UI tests, and how to mock network and DB layers in testing. Write unbreakable UI tests performance tests, as well. And learn the difference between integration tests and snapshot testing.
This book will show you how to maintain code that's not only bug-free but will also remain high quality over time and maintainable while you make changes and refactors during an app's life. Testing in all its aspects is the best way of maintaining iOS projects to run fast and reliably long after you've released them.
Many iOS developers working today lack an understanding of the advantages of testing, and might be unfamiliar with tools that make the job easier, such as XCTest framework. With Pro iOS Testing you'll see how to develop and test apps that work and stay working for a long time.
You will:
Set up a stable testing system
Extend an app's lifetime with testing before release
Incorporate testing into your everyday development routine
Write unbreakable UI tests performance tests
Understand the difference between integration tests and snapshot testing