Einheit, die eine Firemonkey-Anwendung testet

8

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?)

    
Stew 02.03.2012, 13:27
quelle

1 Antwort

2

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.

    
David Heffernan 02.03.2012, 13:32
quelle