Sviluppo di un'applicazione in cui un blocco del codice viene utilizzato da entrambe le app per i test

1

Sto sviluppando un'applicazione web in PHP, dove parte del codice che sto sviluppando verrà utilizzata anche nei test. Non sono sicuro di come gestirlo. Il codice in questione è un'astrazione per comunicare con l'API soap / xml di eBay.

Spero che ciò che segue abbia senso ... Chiedo scusa per un'altra lunga domanda !!

In particolare sto scrivendo un sistema di gestione di eBay che ha una GUI che automatizza i processi di eBay. Sto usando lo sviluppo basato su test, e il mio primo test di accettazione ha evidenziato questo dilemma.

La mia prima funzione mostrerà all'utente un elenco di ordini effettuati. E il test prima, usando l'API di Ebay, carica un'asta nella sandbox di eBay, poi usa un cliente di prova, acquista un oggetto per suo conto e alla fine, verificherà che l'utente del mio software vedrà l'oggetto acquistato nella GUI (che l'app avrà fatto recuperando la cronologia degli ordini dall'API di eBay.

Inizialmente stavo per scrivere una serie di oggetti che forniscono all'app un'API orientata agli oggetti per l'interruzione con eBay, e lo fanno come parte del codice dell'applicazione, quindi non particolarmente riutilizzabili. O almeno, non proprio confezionato in alcun modo, oltre ai buoni principi OO. Ma se continuo con questo piano, gli script di test dovrebbero "prendere in prestito" il codice sorgente nei test e aggiungere funzionalità alla parte eBay del mio codice che verrebbe utilizzata solo nei test, poiché si sovrappone in parte, e non in altre parti. (L'autenticazione di eBay e simili è un requisito comune per l'app e i test, ma le altre chiamate API almeno per iniziare non si sovrappongono). Se seguo questa idea, il problema è che non so come dovrei trattare le parti del codice eBay che solo i test usano; dovrei scrivere test di unità / integrazione per quelli, anche se sono utilizzati solo dai test dell'app di accettazione / integrazione? Oppure l'atto di utilizzare le funzionalità del modulo eBay di solo test nei test per testare le funzionalità del modulo eBay di solo app è sufficiente per fungere da test sufficienti nel caso in cui decida di utilizzare le funzionalità del modulo eBay di solo test nell'applicazione?

Stavo pensando di estrarre il codice di eBay in un progetto completamente separato (ad esempio utilizzando il compositore e inserendolo in un repository separato). Quindi importa l'intera cosa prima nella directory di test, e anche la duplicazione nella directory sorgente dell'app. Quindi, aggiungendo le funzionalità necessarie (dal test o dall'app) e unitamente all'unità / integrazione testano tutti gli aspetti del modulo eBay, anche se alcuni aspetti vengono utilizzati solo dall'app e altri solo dai test dell'app. Ma poi penso che lo stesso problema si applicherebbe ancora !! I test del modulo dovrebbero utilizzare parti del modulo per eseguire i test su altre parti del modulo!

    
posta CL22 04.08.2015 - 13:24
fonte

1 risposta

1

Sembra uno scenario di test abbastanza classico. La soluzione è testare sia l'astrazione ebay tramite test di integrazione su ebay. Non vuoi farlo ovunque poiché rallenterà tutti i tuoi test, quindi tienilo al minimo.

Quando sei abbastanza sicuro che l'astrazione funzioni, puoi sostituirla con una simulazione durante il test del resto del codice. Quindi asserisci che il metodo corretto è stato chiamato sul simulatore e chiamalo un giorno.

    
risposta data 04.08.2015 - 13:49
fonte

Leggi altre domande sui tag