2012-03-02 18 views
8

Sto provando a utilizzare DUnit, fornito con RAD Studio XE2, all'unità che sta testando un'applicazione Firemonkey (C++).Unit test di un'applicazione Firemonkey

Il problema è che DUnit è un progetto VCL e questo non mi consente di includere i moduli unità Firemonkey (es .: UfrmMain.h) nel progetto di test.

Anche se separo Visual con Logic (MultiTier/MVC), non posso includere alcuna libreria Firemonkey nelle mie classi (a volte questo sarebbe utile, quando esiste una classe "CustomDatabase" che ha un oggetto di tipo TConnection, che è disponibile solo in Firemonkey - , ovviamente solo un esempio).

Il test è possibile quando si separa completamente il codice firemonkey e lo si lascia sui moduli, e la logica/i dati sono mantenuti su classi con codice C++ puro.

Quindi, questo "handicap" è in realtà una buona cosa? Mi costringe a lavorare con MultiTier/MVC? (Questa cosa in C++ è nuova per me) O dovrei cercare un'alternativa di test delle unità, che mi permetta di testare anche i moduli?

(Mi può consiglia anche qualche progetto C++ su GitHub o il codice di esempio che è separata nel modo citato, dove posso contare su?)

+0

Sembra che sia tempo per qualche intraprendente Delphi haxxor di scrivere un tipo di opere DUnitFMX –

risposta

2

Un possibile approccio potrebbe essere quello di utilizzare TextTestRunner piuttosto che GUITestRunner. Non ho mai provato questo, ma penso che sia abbastanza plausibile che lo TextTestRunner non usi nessuna unità VCL, o almeno che possa essere facilmente rimosso. E infatti una rapida scansione del codice sorgente suggerisce che questo funzionerà.

+0

. (Ho dovuto cambiare il "FrameworkType" da VCL a FMX su ".cbproj" del progetto di test da compilare, ma ora il progetto richiede un file .obj da un file di componente di terze parti. Quasi rinunciare a firemonkey =/ – Stew

+0

Il testo corridore davvero non funziona? –

+0

nop; ~~ – Stew