Test-driven development with Chef
As we are trying to specify our infrastructure as code, it would be prudent of us to take some good stuff from devs practices and incorporate them into our coding practices. The following figure illustrates a few such ideas:
Ops:
TDD: Test-Driven Development
CI: Continuous Integration
CD: Continuous Delivery/Deployment
Development without TDD
The usual practice followed by operations people can be understood from this flow chart:
Development with TDD
With TDD practices in use, the following is how the development cycle looks:
With TDD, the tests are an integral part of the development phase and either tests are written even before the code is written, or they are written alongside the code. So, whether you are building a new feature or fixing a bug, you'll always be writing test cases and running them continuously to ensure that things are behaving as intended. This is a habit that needs to be cultivated, and the following are the steps you need to take to follow...