I had covered recipe code with ChefSpec and after that I have integration testing with Kitchen. To me at the end ChefSpec is not really usable just one extra think to maintain because:
When I'm writing Java with TDD/BDD I see real benefits from using this approach- lots of smaller classes, DI integration, modularity, less bugs.
However with Chef and ChefSpec to me is only usable default generated spec the helps me with some compile and syntax errors.
How to use ChefSpec with Chef to see the same benefits like TDD/BDD in Java for example.