iCuke allows you to test an iPhone application with cucumber. It provides a selection of step definitions similar to those provided for testing web applications.
iCuke provides an XML version of the iPhone's screen and the ability to simulate events such as taps or typing. This is done via a HTTP interface which iCuke attaches to your application process.
iCuke requires no code changes to your application to work, however, it relies on accessibility information to function sensibly.
iCuke uses applescript to drive Xcode in order to launch the application into the iPhone Simulator. It is intended that iCuke will leave your Xcode project configuration (such as active target/configuration) as it found it. Please let us know if that is not the case.
If your application can be used via the VoiceOver screen reader then iCuke should not have any problems. Please see the apple documentation on making your application Accessible for more details on how to ensure iCuke will work with your application.
Install the gem and load the iCuke step definitions in a cucumber support file:
Write some scenarios like:
Given "iCuke" from "app/iCuke/iCuke.xcodeproj" is loaded in the simulator
Scenario: User views the About screen
When I tap "About" Then I should see "Author:"
iCuke does not currently automate enabling the Accessibility Inspecter, which is required to be running for iCuke to function. I am still deciding how best to achieve this is in a reliable fashion.
iCuke does not support drags, scrolling or pinches yet. They'll be here soon!
Note on Patches/Pull Requests
Fork the project.
Make your feature addition or bug fix.
Add tests for it. This is important so I don't break it in a future version unintentionally.
Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
Send me a pull request. Bonus points for topic branches.
Copyright © 2010 Rob Holland. See LICENSE for details.