Ich versuche, DUnit, das mit RAD Studio XE2 geliefert wurde, zu verwenden, um Unit eine Einheit (C ++) zu testen.
Das Problem ist, dass DUnit ein VCL-Projekt ist, und dies macht es mir unmöglich, die Firefonkey Unit Forms (zB UfrmMain.h) in das Testprojekt aufzunehmen.
Selbst wenn ich Visual mit Logic (MultiTier / MVC) getrennt habe, kann ich keine FireMaker-Bibliothek in meine Klassen aufnehmen (manchmal wäre das nützlich, wenn es eine Klasse "CustomDatabase" gibt, die ein Objekt vom Typ TConnection hat) ist nur in Firemonkey verfügbar - natürlich nur ein Beispiel).
Der Test ist möglich, wenn ich den Code von FireMonkey vollständig getrennt habe und ihn auf Formularen belasse und die Logik / Daten in Klassen mit reinem C ++ - Code aufbewahren.
Also ist dieses "Handicap" eigentlich eine gute Sache? Erzwingt mich die Arbeit mit MultiTier / MVC? (Diese Sache in C ++ ist neu für mich) Oder sollte ich nach einer Alternative zum Komponententest suchen, mit der ich auch Formulare testen kann?
(Kannst du mir auch ein C ++ - Projekt auf github oder ein Codebeispiel empfehlen, das auf die erwähnte Weise getrennt ist, auf die ich mich verlassen kann?)
Ein möglicher Ansatz wäre die Verwendung von TextTestRunner
anstelle von GUITestRunner
. Ich habe das noch nie ausprobiert, aber ich halte es für durchaus plausibel, dass TextTestRunner
keine VCL-Einheiten verwendet, oder zumindest das, was es verwendet, leicht herausgeschnitten werden kann. Und tatsächlich schlägt ein schneller Scan des Quellcodes vor, dass dies funktioniert.
Tags und Links unit-testing delphi firemonkey dunit n-tier