Ich versuche, einige Komponententests für ein vorhandenes C++ - Projekt einzurichten.Unit-Tests und Mocking kleine, wert-wie Klassen in C++
Hier ist das Setup: Ich habe Google Mock ausgewählt, die Google Test enthält. Ich habe ein anderes Projekt (Tests genannt) zur Visual Studio Solution hinzugefügt. Die zu testenden Einheiten befinden sich in einem anderen Projekt namens Main. Es ist geplant, jede cpp-Datei, die ich testen möchte, dem Tests-Projekt hinzuzufügen. Das Tests-Projekt hat Zugriff auf alle Header-Dateien von Main.
Ich habe eine Cpp-Datei zum Tests Projekt hinzugefügt, und es kompiliert, aber kommt mit Linker-Fehler. Die meisten basieren auf einer von COleDateTime abgeleiteten Klasse namens CTimeValue. Die zu testende Einheit verfügt über Methoden mit Werten für den Wert CTimeValue und gibt einige CTimeValue-Attribute an.
Ich möchte das UUT isoliert testen und Mocks und Fälschungen für alle Abhängigkeiten verwenden. Ich sehe nicht, wie man es mit CTimeValue macht. Es wird als Wert verwendet, enthält keine virtuellen Methoden, ist aber immer noch sehr komplex und würde einen separaten Komponententest verdienen.
CTimeValue ist nur eine von vielen Klassen, die im Projekt so ist. Wie kann ich das Testen von Klassen isolieren, die diese benutzerdefinierten Typen verwenden?
Prost, Felix
Dies wird tun müssen, danke für die Antwort. Mocks scheinen mit der Wertesemantik nicht gut zu funktionieren. – TheFogger