2013-08-26 7 views
11

Sto scrivendo alcune librerie Dart e voglio averle non pubblicate. Ho creato la directory test e voglio mettere i miei test qui. Poiché avrò molti test, voglio che siano separati da più file. Le mie domande sono, qual è la convenzione Dart, come farlo. Voglio che i miei test siano eseguiti facilmente, tuttavia, voglio anche essere in grado di eseguire solo un file di test.Come scrivere più unittests in dart in più file?

Quali sono i tuoi suggerimenti?

risposta

13

È comune separare i test in più file. Sto includendo un esempio di come puoi farlo.

Immaginate di avere 2 file con test, foo_test.dart, bar_test.dart che contengono test per il vostro programma. foo_test.dart potrebbe essere simile a questa:

library foo_test; 

import 'package:unittest/unittest.dart'; 

void main() { 
    test('foo test',() { 
    expect("foo".length, equals(3)); 
    }); 
} 

E bar_test.dart potrebbe essere simile a questa:

library bar_test; 

import 'package:unittest/unittest.dart'; 

void main() { 
    test('bar test',() { 
    expect("bar".length, equals(3)); 
    }); 
} 

È possibile eseguire entrambi i file, e il test contenuto in quel file sarebbe eseguire .

Il, vorrei creare qualcosa come un file all_tests.dart che importerebbe i test da foo_test.dart e bar_test.dart. Ecco cosa all_tests.dart potrebbe essere simile:

import 'foo_test.dart' as foo_test; 
import 'bar_test.dart' as bar_test; 

void main() { 
    foo_test.main(); 
    bar_test.main(); 
} 

Se avete eseguito all_tests.dart, entrambi i test da foo_test.dart e bar_test.dart sarebbe eseguire.

Una cosa da notare: perché tutto funzioni, è necessario dichiarare foo_test.dart e bar_test.dart come librerie (vedere la prima riga di ogni file). Quindi, in all_tests.dart, è possibile utilizzare la sintassi di importazione per recuperare il contenuto delle librerie dichiarate.

Ecco come organizzo la maggior parte dei miei test.

+0

Questo è fantastico, grazie! – JesterXL

1

C'è uno strumento che fa esattamente questo, Dart Test Runner. Un estratto da quella pagina:

Dart Test Runner rileverà automaticamente ed eseguirà tutti i test nel progetto Dart nell'ambiente corretto (VM o Browser).

rileva qualsiasi test writen in un file con suffisso _test.dart in cui il codice di prova è all'interno di una funzione main(). Non ha alcun problema nel rilevamento e nell'esecuzione dei test unittest.

È piuttosto semplice installarlo ed eseguirlo.Solo due comandi:

$ pub global activate test_runner 
$ pub global run test_runner 

Per ulteriori opzioni, consultare la pagina Dart Test Runner.

Problemi correlati