Actualmente estoy usando la jerarquía de prueba de 2 niveles en DUnit (Proyecto de prueba -> Caso de prueba -> Método de prueba; vea el ejemplo a continuación). ¿Es posible introducir niveles de 3er nivel o incluso más?DUnit prueba la jerarquía
Respuesta
Puede utilizar conjuntos de pruebas para crear tantos niveles de anidamiento como se desee. El documentation ofrece el siguiente ejemplo:
La unidad
TestFramework
expone la claseTTestSuite
, la clase que implementa conjuntos de pruebas, por lo que puede crear jerarquías de prueba usando más código explícito:La siguiente función,
UnitTests
, crea un conjunto de pruebas y añade los dos clases de prueba a la misma:function UnitTests: ITestSuite; var ATestSuite: TTestSuite; begin ATestSuite := TTestSuite.create('Some trivial tests'); ATestSuite.addTest(TTestArithmetic.Suite); ATestSuite.addTest(TTestStringlist.Suite); Result := ATestSuite; end;
Sin embargo, otra manera de implementar la función anterior sería:
function UnitTests: ITestSuite; begin Result := TTestSuite.Create( 'Some trivial tests', [TTestArithmetic.Suite, TTestStringlist.Suite] ); end;
En el ejemplo anterior, la
TTestSuite
constructor añade las pruebas en la matriz pasada a la suite .puede registrar un conjunto de pruebas creada en cualquiera de las formas anteriores por usando la misma llamada que se utiliza para registrar los casos de prueba individuales:
initialization RegisterTest('Simple Test', UnitTests); end.
Cuando se ejecuta con
GUITestRunner
, verá la nueva jerarquía.
Puede agrupar pruebas relacionadas en suites de prueba, que se pueden anidar.
Si desea hacerlo en tiempo de ejecución, consulte mi "Open Component Test Framework (OpenCTF)" en sourceforge.
Construyo una jerarquía colocando barras invertidas en `SuitePath '. Por ejemplo:
initialization
RegisterTests('Group1\Group2', [TExampleTests1.Suite,
TExampleTests2.Suite]);
RegisterTests('Group1\Group3', [TExampleTests3.Suite,
TExampleTests4.Suite]);
end.
Al final me sale algo como esto:
Mucho menos al rededor de la manera de David, y se puede extender sus definiciones de grupo a través de unidades dispares.
- 1. Prueba de DUnit basada en datos
- 2. Prueba DUnit GUI: ¿Puedo forzar 'Aplicación' a una "forma" diferente?
- 3. DUnit: ¿Cómo ejecutar pruebas?
- 4. Cómo hacer que la prueba Delphi DUnit falle cuando TSQLConnection.Connected = true
- 5. ¿Cómo puedo probar métodos privados con DUnit?
- 6. ¿Cómo puedo personalizar las clases de casos de prueba de DUnit generadas por el asistente de Caso de prueba?
- 7. Obteniendo las estadísticas de Cobertura de prueba de DUnit usando FinalBuilder y AQTime
- 8. lista plana a la jerarquía
- 9. ¿Usar la jerarquía en findContours() en OpenCV?
- 10. WPF - MVVM - Ver la jerarquía del modelo
- 11. Anotación JAXB para la jerarquía de clases
- 12. XPath con elemento opcional en la jerarquía
- 13. Pasar la jerarquía a un módulo Verilog
- 14. Obteniendo la jerarquía Clase en Java?
- 15. La jerarquía viola a Liskov, ¿y qué?
- 16. Intentando comprender la jerarquía de vista
- 17. ¿Cómo se muestra la jerarquía Macul POM?
- 18. Reemplazar un UIViewController en la jerarquía UINavigationController
- 19. Jerarquía de módulos en guice
- 20. ¿Puedo llamar ToolsAPI desde el código en DUnit GUITestrunner?
- 21. Jerarquía de datos SQL
- 22. Jerarquía en Qt [C++]
- 23. DUnit Comparar dos archivos de texto y mostrar Diff
- 24. ¿Cómo me burlo de la jerarquía de módulos no existentes?
- 25. ¿Cómo puedo probar una clase de Singleton con DUnit?
- 26. Ocultar pruebas de unidades de la jerarquía de llamadas
- 27. Herramienta para crear la jerarquía de llamadas de la biblioteca
- 28. Razones para la estructura de la jerarquía de excepción estándar
- 29. jerarquía de clases C++ Matrix
- 30. Jerarquía de clases de NSObject
Funciona, gracias. – kludg
@Serg También puede agregar puntos en el nombre bajo el cual registra las pruebas y DUnit agregará un nivel por punto. Por ejemplo, cuando hace 'RegisterTest ('Simple.Test', UnitTests);' Creará Simple como nodo y Test como un subnodo de eso en la jerarquía de pruebas. Muy buena característica para agrupar las pruebas en diferentes unidades bajo el mismo nombre funcional. –
@Marjan +1 eso está bien, no lo sabía. Tengo la sensación de que hay mucho poder en DUnit que no se conoce ampliamente. –