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.
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.
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/welcome.coffee.
Alternatively, check out the zucchini-demo project featuring an easy to explore Zucchini setup around Apple's CoreDataBooks sample.
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,
app:/Users/vaskas/Library/Developer/Xcode/DerivedData/CoreDataBooks-ebeqiuqksrwwoscupvxuzjzrdfjz/Build/Products/Debug-iphonesimulator/CoreDataBooks.app
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