2012-03-02 50 views
8

Estoy tratando de usar DUnit, que vino con RAD Studio XE2, para probar una unidad de una aplicación Firemonkey (C++).Unidad probando una aplicación Firemonkey

El problema es que DUnit es un proyecto de VCL, y esto me impide incluir los formularios de la unidad Firemonkey (ej .: UfrmMain.h) en el proyecto de prueba.

Incluso si separa Visual con Lógica (MultiTier/MVC), no puedo incluir ninguna biblioteca Firemonkey en mis clases (a veces esto sería útil, cuando hay una clase "CustomDatabase" que tiene un objeto de tipo TConnection, eso solo está disponible en Firemonkey - por supuesto solo como un ejemplo).

La prueba es posible cuando se separa completamente el código firemonkey y lo dejo en formularios, y la lógica/datos se mantienen en clases con código C++ puro.

Por lo tanto, este "handicap" es realmente una buena cosa? ¿Forzándome a trabajar con MultiTier/MVC? (Esto en C++ es nuevo para mí) ¿O debería buscar una alternativa de prueba unitaria que me permita probar formularios también?

(¿Puede usted también me recomiendan algún proyecto C++ en github o código de ejemplo que se separa en la forma mencionada, donde puedo confiar?)

+0

Parece que es hora de que un Delphi haxxor emprendedor escriba un tipo de trabajo de DUnitFMX –

Respuesta

2

Una posibilidad sería utilizar TextTestRunner en lugar de GUITestRunner. En realidad, nunca he intentado esto, pero creo que es bastante plausible que TextTestRunner no use ninguna unidad VCL o, al menos, lo que usa se puede extirpar fácilmente. Y de hecho, un escaneo rápido del código fuente sugiere que esto funcionará.

+0

. (Tuve que cambiar el "FrameworkType" de VCL a FMX en ".cbproj" del proyecto de prueba para compilar, pero ahora el proyecto requiere un archivo .obj de un archivo de componente de terceros. Casi renunciar a firemonkey =/ – Stew

+0

¿El texto corredor realmente no funciona? –

+0

nop; ~~ – Stew

Cuestiones relacionadas