Sfondo:
Sto lavorando su un progetto di nodo che consiste in un pacchetto principale e diversi pacchetti di addon. Affinché il prodotto finale funzioni, è necessario integrare il pacchetto principale e almeno uno dei pacchetti di addon. Questi pacchetti di addon sono fondamentalmente adattatori di database. I pacchetti Addon hanno una dipendenza dalla produzione sul pacchetto principale. Tutti i pacchetti sono pianificati per essere distribuiti come pacchetti npm separati.
Posso fare test unitari e testare la funzionalità di tutti i componenti separatamente. Ma per me, i test di integrazione sono importanti e mettono alla prova un vero database. Dovrei essere in grado di mettere insieme il nucleo e gli addon, per testarli in integrazione.
La domanda è, in quale pacchetto devo fare il test di integrazione?
-
Esegui i test nei pacchetti di addon. Questo sembra il più "giusto" ed è la prima cosa che ho pensato. Tuttavia, poiché la funzionalità di ciascun addon è molto simile, anche i test sono simili. L'implementazione di centinaia di test simili per ognuno di essi porterà la duplicazione del codice.
-
Esegui i test nel pacchetto principale. Questo eliminerà definitivamente la duplicazione del codice. Ma causerà una dipendenza di sviluppo dal core agli addon. Inoltre, se è necessario implementare un nuovo componente aggiuntivo, la suite di test di base cambierà?
-
Crea un pacchetto separato solo per i test di integrazione. Ciò impedirà la duplicazione del codice. Ma è qualcosa di cui non ho mai visto un esempio. Inoltre, l'aggiunta di addon farà cambiare questo pacchetto.