I want to thank Philly CocoaHeads for an awesome opportunity to spread the word on automated iOS testing. I’m happy with how the presentation turned out, it was a great audience, and there was some really insightful conversation throughout the night. It turns out, the presentation was recorded and will be hosted online for anyone to watch. As soon as it’s up, I’ll link to it here and share it with you all.
If you’re looking to get more information about automated testing outside of this site, here’s some useful resources:
Tools Mentioned
- XCTest – Apple’s main test framework, that is the foundation of unit tests, and a lot of other test tools.
- Xcode UI Tests – WWDC 2015 video introducing the revamped UI testing framework from Apple.
- OCMock – If you’re testing Objective-C code and need to write mocks, THIS IS AWESOME. Unfortunately, doesn’t totally work with Swift.
- KIF – What I’m currently using for UI tests.
- FBSnapshotTestCase – Use it for your snapshot tests.
- Your Fingers – Useful for manual testing.
- Fabric – Useful for a lot of stuff, including beta distribution, crash reporting, and app analytics
- OHHTTPStubs – Corey Floyd’s suggestion for stubbing network requests
- Nocilla – Corey Floyd’s other sugggestion for stubbing network requests
- Chairs – Curtis Herbert’s suggestion for setting up the simulator with preset data for testing
- Martin Fowler’s Test Pyramid – Not a tool, but the original documentation.
- AWeber – The company I work for.
Sample Project
The project I used tonight represents a bare bones project configured with 4 targets. The main target, a target for unit testing, a target for KIF testing (UI/Functional tests), and a target for FBSnapshotTestCase testing. I used Carthage to setup the dependencies.
If you’re looking for the project, you can find it on my GitHub at: https://github.com/obuseme/CocoaHeadsTestingPresentation.
Other Resources
- raywenderlich.com Video Series on Testing – Greg Heo’s video tutorial series on iOS testing at raywenderlich.com. It largely focuses on Apple provided tools.
- raywenderlich.com Mock Objects Tutorial – A tutorial dedicated to different mocking techniques.
- qualitycoding.org – Jon Reid is an awesome thought leader in the iOS testing space. His site is really useful, and I continue to learn a lot from it.
- My Favorite Things – I mention a couple “real” books and posts on other sites that I’ve written on refactoring and testing.
PS – Did you know where the term “Where to Go From Here” comes from? Every tutorial on raywenderlich.com closes with a section of the same title. I found it fitting to use here (almost as a tribute). :]
Happy Cleaning.