Course Outline
Review: Prerequisites
Introduction to TDD
- Core concepts and schools of thought in TDD
- Implementing the red-green-refactor cycle
- Initial practical examples
TDD in Action
- Applying TDD across all layers
- Handling exceptions and errors
Architectural Implications
- Architectural concepts that facilitate more verifiable code
- Unit testing MVVM architecture
Advanced Testing: View Testing
- Identifiable verifiable aspects of views via unit tests
- Executing individual view controllers from Storyboards
Advanced Testing: UI and Integration Testing
- Unit testing asynchronous tasks
- Mocking network requests
- Unit testing Swift Package Manager artifacts
- Conducting Smoke Tests
Suggested Additional Topics
- Alternative testing and assertion frameworks (e.g., Quick, Nimble)
- Behavior Driven Development (BDD) and related frameworks
- Test && commit || revert workflows
- Integration Tests
- Acceptance Tests
- Advanced code coverage metrics
Summary and Conclusion
Requirements
Prerequisites
Participants are expected to have prior knowledge or working experience in the following areas:
Unit Test Fundamentals
- Testing return values
- Testing object state
- Testing behavior
Optimizing Tests
- Refactoring and organizing test code
- Reusing test fixtures
- Reusing helper and convenience methods
Introduction to Test Doubles
- Understanding dummies, stubs, spies, mocks, and fakes
- Implementing tests using doubles
Advanced Test Doubles
- Enhancing mock capabilities (Swift)
Target Audience
This course is designed for iOS mobile application developers seeking to enhance their product development practices. Attendees should have a minimum of 6 months of iOS development experience (1 year is preferred) and should be proficient in Swift, object-oriented programming concepts, and design patterns.
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.