I test di unità, almeno da un punto di vista dello sviluppo di applicazioni Web, non possono realmente coprire la progettazione dell'interfaccia utente. Quali test dell'unità è possibile eseguire con è testare l'input/output di tutti i metodi del controller e/o tutte le funzioni singleton/globali in uso. Pertanto, se desideri ottenere la copertura del test unitario sulla convalida del modulo, assicurati che la tua applicazione sia strutturata in modo tale da poter testare la tua funzione di convalida indipendentemente dall'interfaccia utente.
class SomeController extends ... {
... function isAPhoneNumber($string){
if(...) {
return true;
}
else (...) {
return false;
}
}
}
Questo lascia tutto il codice che ottiene il valore A questo metodo non testato.L'unico modo efficace che ho visto di testare questo è testare l'interfaccia utente direttamente con i telecomandi del browser come Selenium. Lo PHPUnit testing framework dispone di agganci per l'utilizzo del driver PHP di Selenium, il che significa che è possibile utilizzare lo stesso test runner degli altri test di unità.
Non sarai mai sicuro al 100% che un cambiamento innocente non porti i tuoi test al selenio, ma ci sono dei passi da fare durante lo sviluppo per minimizzare questo. Il selenio ha various different ways per "indirizzare" un elemento su cui fare clic o digitare. Si desidera utilizzare il targeting più specifico possibile, quindi provare a dare a tutti i nodi X (HTML) un elemento ID univoco. Ciò garantisce che il selenio farà clic su un collegamento, non importa dove finisce su una pagina.
Quando un ID univoco non è possibile, provare a racchiudere elementi comuni con un elemento HTML che ha un identificatore univoco, quindi utilizzare le opzioni di taratura del xpath del selenio per dire "fai clic sul collegamento che contiene il testo" che si trova nella div con l'id di "foo", o fare clic sul terzo anello nel div con l'ID di "foo".
Se non è evidente dalle voci di cui sopra, non lo fanno si basano sulle scelte di targeting che Selenio IDE (o altri registratori) sceglieranno. Il loro obiettivo è quello di garantire che eseguendo il test su quella pagina esatta si ottengano gli stessi risultati, il che può darti xpath molto fragile. Rivedi sempre i test che registri e correggi il targeting scadente.
Non ci sono risposte facili qui. Se ci fossero, le applicazioni web sarebbero molto meno buggy.
fonte
2009-04-29 20:09:59
http://stackoverflow.com/questions/570451/how-to-best-do-unit-testing-for-a-web-application –