Mobile Testing - Zucchini Framework


Zucchini is a new testing framework that uses a BDD-style domain-specific language (DSL). One of its focus areas is simplifying the acceptance tests written with Selenium.

It is not a replacement for JBehave or the Robot Framework, as you will see later on. Here, we will give you a glimpse of Zucchini’s concepts by describing an example step by step.

How to install Zucchini

The prerequisites to install Zucchini is XCode 4.2. In addition, a few command line tools are required such as brew update && brew install imagemagick && brew install coffee-script.

How to Use Zucchini

  • gem install zucchini-ios

  • Zucchini doesn't involve making any modifications to your application code. You might as well keep your Zucchini tests in a separate project.

  • Start by creating a project scaffold

  • 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

  • Start hacking by modifying features/my_feature/feature.zucchini and features/support/screens/

  • Alternatively, check out the zucchini-demo project featuring an easy to explore Zucchini setup around Apple's CoreDataBooks sample.

Running on the device

  • Add your device to features/support/config.yml.

  • The udidetect utility comes in handy if you plan to add devices from time to time − udidetect -z.

    ZUCCHINI_DEVICE="My Device" zucchini run /path/to/my_feature

  • Running on the iOS Simulator. We strongly encourage you to run your Zucchini features on real hardware. However, you can run them on the iOS Simulator, if you must.

    • First off, modify your features/support/config.yml to include a full path to your compiled app. For example,


    • Secondly, add an 'iOS Simulator' entry to the devices section (no UDID needed) and make sure you provide the actual value for 'screen' based on your iOS Simulator settings −

  • Run it like −

    ZUCCHINI_DEVICE="iOS Simulator" zucchini run /path/to/my_feature

Result Display

Result Display