The testing landscape in the Objective-C world is much more sparsely populated than it is in the Ruby world, with the best two options being OCUnit and Google's customized version of OCUnit which ships as a part of their Google Toolbox for Mac. If you haven't tested with OCUnit before, Apple has a nice article to get you started.
Not in Kansas Anymore
Coming from the Ruby world, I was accustomed to tests running constantly in a console as wrote code. When I started doing iPhone development, it took me a while to setup a confortable working environment. Figuring out the best way to run tests was the biggest component of this period of acclimation.
After working on my first iPhone app for a few weeks, I found running tests via the Xcode GUI to be occasionally useful for debugging, but in general I felt having to switch between targets in Xcode in order to build the tests provided to much resistance. I started using the
xcodebuild command line programs to run tests, which was great, except the output is hopelessly verbose, which makes it quite difficult to see if a test failed.
Ruby to the Rescue
OCRunner is a little Ruby wrapper for
xcodebuild. It will run your tests with
xcodebuild and display the results in a concise and colorful manner:
To try it out:
gem install ocrunner cd /your/project/directory ocrunner --auto
--auto options will rerun tests whenever an Objective-C or header file is modified.
ocrunner --help will tell you about all the available options. The code is on GitHub.
I'm now thinking that the best way to test Objective-C code probably involves MacRuby, but if you're using OCUnit, OCRunner will give you a more streamlined workflow for TDD.