Ho recentemente costruito l'inizio di un sistema principale che probabilmente diventerà un prodotto mostruoso. Sto costruendo il sistema con node.js e ho deciso dopo aver creato una piccola base, che sarebbe stata una buona idea iniziare a utilizzare una sorta di suite di test automatizzata per testare l'applicazione.
Ho deciso di usare il gelsomino, in quanto sembra abbastanza solido e ha molte funzioni per lo stubing di metodi e classi di spionaggio e derisione. L'applicazione ha un sacco di archivi dati esterni e accesso api (kestrel, mysql, mongodb, facebook e altro).
Il mio problema è che ho una buona quantità di codice scritto che voglio iniziare a testare - poiché rappresenta le basi dell'applicazione. Quali sono le migliori pratiche per testare metodi / classi che accedono a API esterne su cui posso o non posso avere controllo?
Ad esempio, ho una struttura dati che recupera una serie di dati da un database MySQL. Voglio testare il metodo che recupera i dati; e non sono sicuro di come farlo. Potrei testare il metodo fetch
che dovrebbe restituire una matrice di oggetti, ma per isolare il metodo dal database, ho bisogno di definire i miei dati di fissaggio. Quindi quello che finisco per fare è lo stub dell'esecuzione di mysql e la restituzione di un dataset statico. Quindi, finisco per scrivere una funzione che restituisce il set di dati che fa passare il test. Questo non sembra testare realmente il codice, a parte la verifica che un metodo venga chiamato.
So che è un po 'astratto e vago, sembra che l'idea del testing sia molto astratta, quindi spero che qualcuno abbia una certa esperienza e possa guidarmi nella giusta direzione.
Qualsiasi consiglio o lettura che posso fare è più che benvenuto.
Grazie in anticipo.