Pregunta

Actualmente estoy usando la jerarquía de prueba de 2 niveles en Dunit (Proyecto de prueba -> Caso de prueba -> Método de prueba; ver ejemplo a continuación). ¿Es posible introducir el tercer nivel o incluso más niveles?

DUnit Example

¿Fue útil?

Solución

Puede usar suites de prueba para crear tantos niveles de anidación como desee. los documentación Ofrece el siguiente ejemplo:

los TestFramework la unidad expone el TTestSuite clase, la clase que implementa suites de prueba, por lo que puede crear jerarquías de prueba utilizando un código más explícito:

La siguiente función, UnitTests, crea una suite de prueba y le agrega las dos clases de prueba:

function UnitTests: ITestSuite; 
var
  ATestSuite: TTestSuite; 
begin 
  ATestSuite := TTestSuite.create('Some trivial tests'); 
  ATestSuite.addTest(TTestArithmetic.Suite); 
  ATestSuite.addTest(TTestStringlist.Suite);  
  Result := ATestSuite; 
end;

Otra forma más 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, el TTestSuite El constructor agrega las pruebas en la matriz pasada a la suite.

Puede registrar un conjunto de pruebas creado en cualquiera de las formas anteriores utilizando la misma llamada que utiliza para registrar casos de prueba individuales:

initialization    
  RegisterTest('Simple Test', UnitTests);
end.

Cuando corre con GUITestRunner, verás la nueva jerarquía.

Otros consejos

Construyo una jerarquía colocando barras de mochila en el 'Unitapath'. Por ejemplo:

initialization

  RegisterTests('Group1\Group2', [TExampleTests1.Suite,
                                  TExampleTests2.Suite]);

  RegisterTests('Group1\Group3', [TExampleTests3.Suite,
                                  TExampleTests4.Suite]);
end.

Al final obtengo algo como esto:

Example DUnit Test Hierarchy

Mucho menos irrumpir que con el camino de David, y puedes difundir las definiciones de tu grupo en unidades dispares.

Puede agrupar pruebas relacionadas en suites de prueba, que pueden anidarse.

Si desea hacerlo en el momento de ejecución, consulte mi "Open Component Test Framework (OpenCTF)" en Fuente de la fuente.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top