A visual iOS testing framework that loves your apps
Use a simple extensible DSL to specify your interaction or walkthrough scenarios.
Mark them as pending and promote them to reference as you progress with your project.
Use Zucchini as you design, code or test your app for regressions.
A Zucchini feature file consists of sections bound to contexts of different application screens. Every screen you proceed to needs to be backed up by a CoffeeScript class describing all UI elements you want Zucchini to interact with as well as custom actions you feel like performing on that screen.
class PostScreen extends Screen anchor: -> $("navigationBar[name=Post]") constructor: -> super 'post' extend @elements, 'Post': -> view.navigationBars()["Post"].buttons()["Post"] extend @actions, 'Type "([^"]*)"$': (text) -> messageArea = view.elements()['Message Text Area'] messageArea.setValue text
Zucchini integrates mechanic.js for quick and painless elements selection.
Zucchini only runs on Mac OS X 10.6 and better and requires XCode 4.2 or newer as well as Ruby 1.9.3 (or newer).
The other two dependencies are ImageMagick and CoffeeScript. If you use Homebrew, they are straightforward to install:
brew install imagemagick node
npm install coffee-script
Install the zucchini-ios gem:
gem install zucchini-ios
Create a project scaffold for zucchini:
zucchini generate --project /path/to/my_project
Create a feature scaffold for your first feature:
zucchini generate --feature /path/to/my_project/features/my_feature
Have a look at the newly created features and support subdirectories and start hacking away.
Make sure you check out the zucchini-demo project featuring an easy to explore Zucchini setup around Apple's CoreDataBooks sample.