Sono al punto in cui ho bisogno di scrivere test unitari per un'API REST scritta usando CakePHP 1.3. L'API supporta le richieste GET, POST e PUT per l'interrogazione e la manipolazione dei dati.Come testare l'unità API?
Esiste un modo stabilito per verificare l'input/output corretto di un'API che simula una richiesta HTTP, utilizzando apparecchi? Non voglio eseguire vere richieste POST/PUT contro il database live (dev). Come posso sfruttare al meglio il sistema per utilizzare modelli temporanei, ma testare il resto dello stack così com'è?
Testare le richieste GET è abbastanza semplice con controller tests. Tuttavia, per la manipolazione dei dati, l'API utilizza le intestazioni HTTP in modo estensivo e analizza anche dati XML e JSON POST/PUT non elaborati. I metodi di test dell'unità di controllo simulano solo i dati POST impostando $this->data
nel controller, il che non mi consente di testare correttamente l'API.
Se stai testando quasi l'intero stack contemporaneamente, non è più un test unitario, vero? – wds
@wds Quindi, ancora una volta, non è una richiesta API come una chiamata di funzione per il client? Perché * non dovrei * Lo collaudo nel suo insieme? – deceze
è solo una piccola questione di nomenclatura. Avrei chiamato questo test di integrazione, non un test unitario. – wds