Domanda

Attualmente sto usando la gerarchia di test a 2 livelli in DUNIT (Progetto di prova -> Caso di prova -> Metodo di prova; vedere Esempio di seguito). È possibile introdurre 3 ° livello o anche più livelli?

DUnit Example

È stato utile?

Soluzione

Puoi usare le suite di test per creare tutti i livelli di nidificazione che desideri. Il documentazione offre il seguente esempio:

Il TestFramework L'unità espone il TTestSuite Classe, la classe che implementa le suite di test, in modo da poter creare gerarchie di test utilizzando un codice più esplicito:

La seguente funzione, UnitTests, crea una suite di test e aggiunge le due classi di test ad essa:

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

Un altro modo per implementare la funzione di cui sopra sarebbe:

function UnitTests: ITestSuite; 
begin
  Result := TTestSuite.Create(
    'Some trivial tests',
    [TTestArithmetic.Suite, TTestStringlist.Suite]
  );
end;

Nell'esempio sopra, il TTestSuite Il costruttore aggiunge i test nell'array passato alla suite.

È possibile registrare una suite di test creata in uno dei modi precedenti utilizzando la stessa chiamata utilizzata per registrare i singoli casi di test:

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

Quando corri con GUITestRunner, vedrai la nuova gerarchia.

Altri suggerimenti

Costruisco una gerarchia mettendo in backslashes in "SpeedPath". Per esempio:

initialization

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

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

Alla fine ottengo qualcosa di simile:

Example DUnit Test Hierarchy

Molto meno in giro che con David's Way e puoi diffondere le definizioni del tuo gruppo in unità disparate.

È possibile raggruppare test relativi alle suite di test, che possono essere nidificate.

Se vuoi farlo in fase di esecuzione, dai un'occhiata al mio "Open Component Test Framework (OpenCTF)" all'indirizzo FORNEFORGE.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top