Ich beginne gerade mit TDD und bin neugierig, was andere angehen, um ihre Tests durchzuführen. Als Referenz verwende ich das Google-Test-Framework, aber ich glaube, dass die Frage auf die meisten anderen Test-Frameworks und auf andere Sprachen als C/C++ anwendbar ist.Wie führen Sie Ihre Komponententests durch? Compiler-Flags? Statische Bibliotheken?
Mein allgemeiner Ansatz ist bisher eines der drei Dinge zu tun:
die Mehrheit der Anwendung in einer statischen Bibliothek schreiben, dann zwei ausführbare Dateien erstellen. Eine ausführbare Datei ist die Anwendung selbst, die andere ist der Test-Runner mit allen Tests. Beide verbinden sich mit der statischen Bibliothek.
Betten Sie den Testcode direkt in die Anwendung ein und aktivieren oder deaktivieren Sie den Testcode mithilfe von Compilerflags. Dies ist wahrscheinlich der beste Ansatz, den ich bisher verwendet habe, aber den Code etwas auffrischen.
Betten Sie den Testcode direkt in die Anwendung ein, und führen Sie bei bestimmten Befehlszeilenschaltern entweder die Anwendung selbst aus oder führen Sie die in die Anwendung eingebetteten Tests aus.
Keine dieser Lösungen sind besonders elegant ...
Wie Sie es tun?
Der Konsens scheint, dass # 1 ist die beste zu sein. Das scheint einfach nicht so elegant zu sein wie es sein könnte. Ich denke, wenn ich Eleganz will, sollte ich zu einer Skriptsprache wechseln. : p – kurige