Also, ich hab mir nochmal erzählen lassen, dass Unittesting ja sowas tolles und geniales sei, und wollte da jetzt auch mal mit anfangen.
Nun gibt es aber ja eine Vielzahl an Toolkits, da wollte ich mal fragen, ob hier jemand schon Erfahrungen damit gemacht hat, und was man empfehlen kann.
[C++] Unittesting
[C++] Unittesting
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
https://jonathank.de/games/
- dowhilefor
- Moderator
- Beiträge: 173
- Registriert: 27.02.2009, 15:44
- Alter Benutzername: 6SidedDice
- Echter Name: Nico Probst
- Wohnort: Bochum
- Kontaktdaten:
Re: [C++] Unittesting
Hm, ich hab bisher die Unit Tests aus der Boost, UnitTest++ und das UnitTest Framework von Visual Studio benutzt. Letzteres lässt sich über Managed C++ auch indirekt für C++ benutzen. Die Integration in VS ist natürlich der große Vorteil, ansonsten geben sich die Sachen nicht soviel. Waren alle ganz brauchbar.
Mein Gehirn besteht nur noch aus einem hash-index, ich weiss was ich kenn aber kenn nicht was ich weiss
- Aramis
- Moderator
- Beiträge: 1458
- Registriert: 25.02.2009, 19:50
- Echter Name: Alexander Gessler
- Wohnort: 2016
- Kontaktdaten:
Re: [C++] Unittesting
In Assimp steckt CppUnit drin. Erkenntnis daraus: überladen, viel zu viel Quellcode. Finger weg, auch von der Lite-Variante.
Ich hab dann mit Alternativen herumprobiert, aktuell bin ich mit googletest rundum zufrieden. Ein minimaler Testcase ist enorm kompakt, Fixtures mit Setup/Teardown usw. werden natürlich auch unterstützt. Ausgabe ist standardmäßig auf der Konsole (dankenswerterweise farbig), wenn was schief läuft merkt man es sofort und nicht erst an einer winzigen Statuszeile ganz am Ende.
Unittests selber sind sinnvoll, aber sie stoßen dann auch recht schnell an ihre Grenzen. Mocking-Frameworks sollen da noch ein bisschen nachhelfen, ausprobier hab ich es bislang noch nicht.
Ich hab dann mit Alternativen herumprobiert, aktuell bin ich mit googletest rundum zufrieden. Ein minimaler Testcase ist enorm kompakt, Fixtures mit Setup/Teardown usw. werden natürlich auch unterstützt. Ausgabe ist standardmäßig auf der Konsole (dankenswerterweise farbig), wenn was schief läuft merkt man es sofort und nicht erst an einer winzigen Statuszeile ganz am Ende.
Unittests selber sind sinnvoll, aber sie stoßen dann auch recht schnell an ihre Grenzen. Mocking-Frameworks sollen da noch ein bisschen nachhelfen, ausprobier hab ich es bislang noch nicht.
- kimmi
- Moderator
- Beiträge: 1412
- Registriert: 26.02.2009, 09:42
- Echter Name: Kim Kulling
- Wohnort: Luebeck
- Kontaktdaten:
Re: [C++] Unittesting
Unittests sind als Entwicklungswerkzeug schcon ganz gut, wenn man die eigenen Klassen testen will. Richtig interessant wird es dann, wenn man das Zusammenspiel mehrerer Klassen also Submodul-Tests bauen will. Da helfen wie von Arami schon vorgeschlagen Mock-Objekte, um gegebenenfalls ein Renderdevice zu simulieren. Bei Timing-abhängigen Algorithmen wird es dann aber recht verzwickt.
Beim automatisierten Testen von GUIs arbeiten wir mit sogenannten Monkeys, die der UI Userinteraktionen vorspielen können. Hier ist die Validierung aber recht aufwändig ( zum Beispiel Abgleich von Screenshots ).
Gruß Kimmi
Beim automatisierten Testen von GUIs arbeiten wir mit sogenannten Monkeys, die der UI Userinteraktionen vorspielen können. Hier ist die Validierung aber recht aufwändig ( zum Beispiel Abgleich von Screenshots ).
Gruß Kimmi
Re: [C++] Unittesting
Hmmm
Ich denke ich werde mir erstmal dieses googletest ansehen, um damit erste Unit-Test Erfahrungen zu sammeln.
Ich denke ich werde mir erstmal dieses googletest ansehen, um damit erste Unit-Test Erfahrungen zu sammeln.
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
https://jonathank.de/games/