Here are some links that I consider worth checking out. Things move fast in the iOS world, so I recommend doing regular Google searching to try to keep up.
Websites I Reference Frequently
- Expecta
This is my current favorite unit testing matcher framework. It allows assertions to be much more readable, even better than OCHamcrest. It has built-in asynchronous support. It runs on top of XCTest or OCUnit, requiring little setup, and making tests easy to run. - OCMockito
This is my current favorite mock object framework. It currently does not supportĀ spy orĀ partial mocks. - Kiwi
This used to be my new favorite unit testing framework. It uses BDD style specifications that allow tests to be more organized and hence more readable. It has built-in mock support. It runs on top of OCUnit, requiring little setup, and making tests easy to run. - KIF
This is a UI Automation framework that allows writing tests in Objective-C. While not really a unit testing framework, I’m currently exploring where it fits into the total testing strategy.
Other Recommended Websites
- Apple’s OCUnit Unit Testing page
This is the official Xcode unit testing documentation. OCUnit (aka SenTestingKit) is built into Xcode, so this is the easiest to setup. - OCMock
This is a mock object framework. It supports most varieties of mocks including partial and nice mocks. - OCHamcrest
This is a set of unit testing matchers that improve upon the verify statements provided by OCUnit or XCTest. - GHUnit
This is an open source, 3rd party unit testing framework. It has native support for asynchronous tests. Tests run in a separate target, and can be run in the simulator or on a device. It can run OCUnit tests, providing the ability to work in conjunction with OCUnit. I use it to perform API (integration) tests.
Websites I Want To Explore Further
Here are some links that I’ve come across that look interesting and I want to go back and explore further:
- OHHTTPStubs
This is a framework for stubbing HTTP requests. - Specta
This is another unit testing framework using RSpec style specifications.