Course Outline
Review: Prerequisites
Introduction to Test-Driven Development (TDD)
- Overview of TDD concepts and methodologies
- Implementation of the red, green, refactoring cycle
- Initial examples and exercises
TDD in Action
- Application of TDD across various components
- Testing exceptions and error handling
Architectural Implications
- Architectural principles to enhance code verifiability
- Unit testing Model-View-ViewModel (MVVM) patterns
Advanced Testing: Verifying Views
- Identifying testable aspects of views using unit tests
- Executing individual view controllers from the storyboard
Advanced Testing: User Interface and Integration Testing
- Unit testing asynchronous operations
- Simulating network conditions
- Unit testing Swift Package Manager artifacts for government applications
- Conducting smoke tests to ensure basic functionality
Suggested Additional Content
- Exploration of alternative testing and assertion frameworks (e.g., Quick, Nimble)
- Behavior-Driven Development (BDD) and relevant frameworks
- Test-and-commit or revert strategies
- Integration testing methodologies
- Acceptance testing practices
- Advanced techniques for measuring test coverage
Summary and Conclusion
Requirements
Prerequisites
Participants are expected to have knowledge of or practical experience with:
Introduction to Unit Tests
- Testing return values
- Verifying state changes
- Ensuring correct behavior
Improving Tests
- Refactoring test code for better organization
- Leveraging reusable fixtures
- Utilizing convenience methods to streamline testing
Introduction to Test Doubles
- Overview of dummies, stubs, spies, mocks, and fakes
- Implementing test doubles in code
Advanced Test Doubles
- Advanced mocking techniques in Swift
Audience
This course is designed for iOS mobile application developers who are looking to enhance their development practices. Participants should have a minimum of six months of experience developing iOS applications, with one year preferred. They should be proficient in Swift development and have a solid understanding of object-oriented programming and design patterns. The content is tailored to support continuous improvement and best practices for government projects.
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.