Komponententest mit C / C ++: Was unterrichteten Sie Leute, die entweder vorher keine Einheitentests durchgeführt hatten oder von Java / Junit kamen?
Was ist die wichtigste Lektion / Sache, die Sie aus Ihrer Sicht merken / üben sollten, die viel Zeit oder Stress spart (besonders in Bezug auf C / C ++)?
Lesen Sie dies ... Sie werden sowieso .. alt text http://ecx.images-amazon.com/images/I/51RCXGPXQ8L._SL500_AA240_. jpg
Ich bin gegen all diese Empfehlungen, weil ich Testklassen automatisch Freundschaft schenke ...
Persönlich bevorzuge ich es, mich auf das Folgende zu konzentrieren, um mir Zugang zu den Innenseiten einer Klasse zu ermöglichen, die ich testen muss:
Zusammenfassend sehe ich es viel lieber, in Testpunkten entworfen zu sein als in einer Freundschaft mit einer Testklasse. Natürlich ist ersteres schwieriger als letzteres, aber, IMHO, führt zu besseren Code UND besseren Tests.
Ich möchte ripper234 umformulieren und einige Regeln hinzufügen:
Wenn Sie mit einer Legacy-Code-Basis ohne Tests arbeiten, werden Sie höchstwahrscheinlich mit funktionalen Tests beginnen, die ein Unit-Test-Framework für die Implementierung verwenden. Seien Sie nicht alarmiert - Ihr Code ist so miteinander verbunden, dass es wahrscheinlich unmöglich ist, richtige Komponententests zu schreiben. Seien Sie auch nicht selbstgefällig - sobald Funktionstests durchgeführt werden, müssen Sie eine Umgestaltung vornehmen, damit echte Komponententests möglich sind. Dein Code wird dafür besser sein!
Ein Unit-Testfall sollte nur eine Sache testen.
Ich sehe es viel häufiger in C / C ++ im Vergleich zu C # und Java, dass Unit-Testfälle ganze Workflows testen.
Vielleicht liegt es daran, dass die meisten C / C ++ - xUnit-Frameworks mehrere Schritte erfordern, um einen Testfall zu registrieren. Daher ist die Versuchung, nur ein paar Zeilen zu einem vorhandenen Testfall hinzuzufügen, höher.
Tags und Links unit-testing c++ tdd