Course Outline
Day 1
Review: Prerequisites
Intro to TDD
- TDD concepts and schools
- Implementation of the red, green, refactoring sequence
- First examples
TDD FTW!
- TDD everywhere
- Testing exceptions/errors
The Implications of the Architecture
- Architecture concepts to get a more verifiable code
- Unit testing MVVM
Day 2
Advanced Tests: Testing the Views
- Identification of the verifiable aspects of the views with unit tests
- Running individual view controllers from the storyboard
Advanced Tests: UI/Integration Testing
- Unit tests of asynchronous tasks
- Mocking the network
- iOS Unit testing Swift Package Manager artifacts. (??)
- Smoke Tests (??)
Suggested Additional Contents
- Alternative testing and/or assertion frameworks (Quick, Nimble, …)
- Behavior Driven Development (BDD) and possible frameworks
- Test && commit || revert
- Integration Tests
- Acceptance Tests
- Advanced Coverage Measure
Summary and Conclusion
Requirements
-
Prerequisites
We assume that the participants do have knowledge of or working experience with:
Introduction to Unit Tests
- Test return
- Test state
- Test behavior
-
Improving Tests
- Reorganization of the test code
- Reuse of fixtures
- Reuse of convenience methods
-
Introduction to Test Doubles
- Explanation of dummies, stubs, spies, mocks, and fakes
- Implementation of doubles tests
-
Advanced Test Doubles
- Enhancing mocks (Swift)
Audience
This course is intended for iOS mobile app developers who would like to improve the way they build their products. Attendees should have at the very least 6 months of experience developing iOS applications (1 year preferred) and should be familiar with Swift development, know object-oriented programming and what a design pattern is.
Testimonials (6)
The trainer was very knowledgeable and dynamic, keeping engagement and focus of the team during the whole training. I would definitely recommend it as I reckon learnings from this training can be quickly applied to our everyday development workflow.
Inigo
Course - iOS Automation Testing
Many tips, tricks and knowledge about testing and another important software development topics
Juan Navas
Course - iOS Automation Testing
The most interesting part to me is to have some tips on refactoring using tests
Eva Madrazo
Course - iOS Automation Testing
The flexibility of the course and everything that I learned.
Enrique Sureda
Course - iOS Automation Testing
The tips and tricks
Jamie Young
Course - iOS Automation Testing
The instructor tried to make things dynamic, and he demonstrated dominance of the topic.