The Video Store Revisited – Thoughts on Refactoring and Testing

✒ Enzo SandrĂ© · 📆 13/10/2022 · ♻ Refactoring · đŸ§Ș Tests · 📜 Lois du dĂ©veloppement

đŸȘ™ La rĂšgle d’or du refactoring est l’interdiction d’éditer Ă  la fois le code et Ă  la fois les tests. Soit on refactore le code, et les tests garantissent de n’avoir rien cassĂ© lors du processus. Soit on refactore les tests Ă  code Ă©gal. Cette thĂ©orie est belle, mais irrĂ©aliste.

💣 Arie van Deursen et Leon Moonen nous expliquent que certains refactorings changent une interface de maniĂšre non rĂ©trocompatible. Il est donc rigoureusement impossible de ne pas Ă©diter le code ET les tests en les exĂ©cutant.

🧰 Ces refactorings, qu’ils appellent “Type E”, comptent hĂ©las parmi les plus utiles de notre outillage : Extract Subclass, Inline Method, Replace Error Code with Exception et bien d’autres.

🌐 Comment s’en sortir ? Les auteurs ne le prĂ©cisent pas. Pour ma part, je recommande de tester son code le moins unitairement et le plus fonctionnellement possible pour laisser le maximum de libertĂ© de mouvement aux interfaces. Utiliser son IDE pour effectuer les refactorings rĂ©duit le risque d’erreur mais ne l’annule hĂ©las pas.

SOURCE

Deursen, Arie van and Leon Moonen. “The Video Store Revisited – Thoughts on Refactoring and Testing.” (2002).

Enzo Sandré