Cucumber-puppet is a tool for specifying Puppet catalog behavior. It uses Cucumber features as specifications and provides the necessary glue to access a node's catalog from Cucumber's step definitions.
It is currently in beta testing.
$ gem install cucumber-puppet
Go to your Puppet directory
$ cd puppet
Initialise the infrastructure
$ cucumber-puppet-gen world
Create a default policy and adapt it to your needs
$ cucumber-puppet-gen policy $ vim features/catalog/policy.feature
Copy YAML node files into place
$ mkdir features/yaml $ cp /var/lib/puppet/yaml/node/localhost.example.com.yaml features/yaml
Apply your policy
$ cucumber-puppet features/catalog/policy.feature
An example use case can be found at https://github.com/nistude/cucumber-puppet.example.
Further documentation is available in the wiki.
Many thanks to Bernd Ahlers for getting me started with cucumber, rspec and ruby.