Unit di condivisione Test tra diverse implementazioni linguistiche di una specifica?

4

JsonLogic è un formato dati (costruito su JSON) per l'archiviazione e la condivisione di regole tra codice front-end e codice back-end. È essenziale che la stessa regola restituisca lo stesso risultato sia che venga eseguita dal client JavaScript o dal client PHP.

Attualmente il client JavaScript ha test in QUnit e < a href="https://github.com/jwadhams/json-logic-php/blob/master/tests/JsonLogicTest.php"> il client PHP ha i test in PHPunit . La stragrande maggioranza dei test "dati questi input (regole e dati), asserisce che l'output è uguale al risultato atteso."

Man mano che il set di test cresce (e sicuramente aggiungendo parser in altre lingue) come possiamo mantenere solo un set standard di dati di test e risultati attesi che ognuno viene eseguito nel framework di test di ciascuna lingua?

    
posta Jeremy Wadhams 28.10.2015 - 20:11
fonte

1 risposta

5

Un approccio semplice sarebbe semplicemente scrivere un file JSON come:

[
    [ rule, data, expected ],
    [ rule, data, expected ]
]

E poi in ogni lingua, scaricare il file, analizzarlo e testarlo, riga per riga.

La mia prima inclinazione era usare un CSV (sono tornato ora per modificare quella risposta), ma non appena i dati del test includono oggetti e array, all'improvviso hai un CSV con JSON nelle celle, e diventa occhio -stabilmente frustrante da mantenere.

    
risposta data 28.10.2015 - 20:16
fonte

Leggi altre domande sui tag