I want to bump this as I think it's pretty much essential for a production cluster to be able to test run config's first.
An un-named hosting company I used to work for used to have an excellent no-op mode on the cli tools for manipulating cluster members. It would print lots of debug text and list exactly what was being written to templates.
I think that rather than a noop option it should be a standalone chef-test script that takes the following options:
-j a json representation such as that would be obtained from ohai, which is fed into chef as the fake chef-client
-r a run list representing everything to run against this fake client
I would then to be able to maintain a local copy of various json files describing each of my different types of cluster members that I could then run cookbooks against. It would also be a great way to verify cookbooks before deploying to the cluster, a must for production machines.