Nous avons vu le principe du TDD. Dans ce qui va suivre, nous allons écrire les tests puis la recette Chef.
Et tout ça en mode TDD.
Hop hop hop, maintenant utilisons tout ce que nous avons installé :
Foodcritic en bon critique culinaire vous remonte les problèmes grossiers que vous avez dans votre recette Chef.
Allons corriger tout ça :
Le but est de remplacer les informations par rapport à votre recette Chef :
Par :
Au passage éditez le fichier README.md
Maintenant le critique gastronomique semble content de notre repas :
La commande ne doit rien retourner. Dans le cas contraire, vous avez un problème.
TDD ! TDD ! TDD ! :
Les commandes suivantes vont créer la coquille vide pour faire des tests unitaires avec chef-spec puis les lancer :
Donc en gros un exemple qui est considéré comme « en cours ». Ça se confirme en regardant le fichier tout nouvellement générer (spec/default_spec.rb) :
Nous allons faire notre premier test (on remplace le bloc it…end) :
Et on lance le test :
C’est rouge ! Notre test ne marche pas ! Et ben c’est une bonne nouvelle. Nous allons maintenant modifier ce qu’il faut dans Chef pour que ça passe vert (en éditant le fichier recipes/default.rb) :
Et on relance maintenant le test :
Vous voyez ça vient vite
Vous pouvez éditer vos fichiers en parralléle, avec vim c’est comme ça :
Sauf que relancer les tests toutes les 30s, ça va vite vous saouler. En tout cas moi oui J’utilise donc guard :
On vire les exemples qui ne servent à rien (Rails, Capybara et Turnip) dans le fichier Guardfile :
Au passage, on ajoute des paramètres pour le la sortie de rspec soit en couleur. C’est tout bête, mais un vert vert et un rouge rouge c’est plus rapidement vu vous avez noté aussi les changements du côté « lib » à remplacer par recipes. Car à la base rspec sert à tester du code Ruby. Vous lancez tout ça avec :
Maintenant, à chaque modification dans un fichier le test correspondant est relancé. Essayez, vous allez vite comprendre.
A partir de maintenant, continuez de même « Test rouge » -> « Code simple vert » -> « Refactoring » -> passez par la case départ sans prendre les 20000 Euros. Et pensez à faire des commit réguliers