Progettazione testabile del sito [duplicato]

0

Ho sviluppato due servizi web. Il servizio principale è un servizio RESTful (che utilizza DB) e un altro servizio di interfaccia utente che utilizza il servizio RESTful.

Supponiamo che voglio testare l'interfaccia utente per ora (test di integrazione), ogni test apporterà cambiamenti nel DB prod. Inoltre, se nel servizio RESTful, ci sono funzioni unidirezionali per motivi di sicurezza. Intendo dire che le funzioni che non possono essere ripristinate (diciamo se l'elemento del segno come 'fatto', non posso modificarlo o cancellarlo più)?

Queste cose sono molto logiche, la maggior parte dei siti web che conosco hanno la stessa situazione. Tutti questi siti Web non sono testabili?

    
posta nrofis 08.10.2014 - 10:58
fonte

3 risposte

4

Prima di tutto, non dovresti testare il tuo database di produzione. Se hai bisogno di rieseguire i test dopo che l'applicazione è stata avviata (e ti dovresti farlo), corri il serio rischio di perdere o danneggiare i dati che sono vitali per il business.

Quindi, invece di testare il database di produzione, testare un database di test (che dovrebbe essere strutturalmente una copia di quello di produzione). Quindi è anche possibile aggiungere funzionalità all'imbracatura di test per reimpostare il database di test in uno stato noto appena prima o dopo aver eseguito un determinato test.
In questo modo, puoi testare il funzionamento (inter-) corretto dei due servizi Web.

Se si può presumere l'operazione corretta del servizio RESTful, è anche possibile optare per un falso / mock del servizio RESTful, che fornisce tutte le risposte previste per il test specifico, ma in realtà non persiste nulla.

    
risposta data 08.10.2014 - 11:20
fonte
1

Dato che devi eseguire il test dell'unità per l'API REST, suppongo che tu stia utilizzando oggetti simulati per questi, piuttosto che interagire direttamente con il database. Questo dovrebbe darti un quadro di giuste risposte "valide" già dall'API - quello che sto ottenendo è che quando esegui il test, dovresti sapere che sei in "modalità test" (tramite alcune variabili di ambiente globali, test separati) ambiente o un parametro extra impostato nelle richieste da qualche altra parte nei flussi di lavoro). Quindi, se sei in modalità test, la tua API REST dovrebbe restituire oggetti mock al tuo cliente nella risposta, senza influenzare in alcun modo i record del database.

Poiché si tratta di test sul lato client, la tua preoccupazione dovrebbe essere strettamente quella di testare l'interazione del client, poiché il corretto comportamento dell'API viene testato dai test dell'unità REST sul lato server, quindi dovresti assumere che l'API stessa si comporti come si suppone a.

    
risposta data 08.10.2014 - 11:36
fonte
0

Dato HATEOAS, è sufficiente modificare l'URL di base del servizio RESTful per indirizzare il servizio di interfaccia utente a un'altra implementazione di esso. Quindi imposta una versione di staging dell'interfaccia utente e testala contro una versione di gestione temporanea del servizio dati, apportando una modifica.

    
risposta data 08.10.2014 - 11:19
fonte

Leggi altre domande sui tag