Bonjour.
Je travaille actuellement sur un projet et comme dans tout projet on ecrit des tests. Sauf que ces tests ont une influence sur le design du code.
Typiquement, si j'ai un truc dans ce style
Pour tester unitairement B, je me retrouver a ecrire :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7 struct A{void foo();}; struct B { B(A& aa): a(aa){} A& a; }'
et le code de test suivant :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 struct ABase { virtual void foo()=0; }; //----VRAI CODE------ struct A : publicABase { virtual void foo(); }; struct B { B(ABase& aa): a(aa){} ABase& a; };
Donc au final, on se retrouve des classes de bases remplies de fonctions virtuelles de partout (Java-like) alors qu'a la base, bah y'en avait pas.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11 //----TEST CODE------ struct FakeA : publicABase { virtual void foo(){/*dummy*/} }; TEST(TESTB) { FakeA a; B b(a); //tests }
Et ca me d�range que le design du code soit impacte par les tests. Pour moi ce sont des choses orthogonales. On devrait tester notre code, pas modifier le code pour �crire des tests.
Pouvez vous �clairer ma lanterne ? Qu'est ce que je loupe ?
Merci !
David.
PS : Si ca vous int�resse, le framework de test c'est Google Test.
Partager