đȘ 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é