2012-02-27 13 views
6

Ho bisogno di testare alcuni componenti HTTP nella mia app Delphi. Io uso DUnit e voglio aggiungere un po 'di automazione ai test.Server HTTP per i test delle unità in Delphi

Quindi il mio codice di test deve avviare il server HTTP locale, configurarlo (ad esempio, preparare l'interruzione della connessione in 3 secondi, o simulare una larghezza di banda bassa, o chiedere login/password, ecc.), Eseguire la mia unità- prova e chiude il server HTTP.

Ci sono alcuni server HTTP disponibili esattamente per Delphi/DUnit?

So che il team Mozilla ha such server, ma non è troppo facile integrarlo in DUnit.

risposta

9

Uso Indy TIdHttpServer per servire nello stesso processo.

Questo approccio mi consente di verificare che le richieste in arrivo siano corrette, oltre a controllare il comportamento dal client.

Inoltre, è possibile impostare individualmente il server su una base di test in base al testcase, rendendo i test dell'unità più semplici da comprendere (ovvero non si dispone di una parte del "test" da qualche altra parte).

0

È possibile utilizzare unit test/DUnit per costruire test di integrazione automatici. Supponiamo che i componenti HTTP come client http effettuino chiamate a un servizio Web. È possibile creare il proprio servizio Web fittizio o semplicemente utilizzare qualsiasi servizio Web pubblico, ad esempio uno di quelli di Google o Amazon. Quindi devi solo creare un account sviluppatore Google o Amazon e utilizzare alcune funzioni di servizio di base per i test.

0

Se si stanno testando i servizi SOAP, utilizzare SoapUI per attivare un servizio "fittizio" basato sul proprio WSDL. Puoi fare in modo che restituisca una varietà di risposte (sequenzialmente o usa un semplice script per abbinare le risposte ai contenuti della richiesta). Ho fatto questo facendo corrispondere l'ID della richiesta (solo un GUID) nella mia richiesta inviata da il test di DUnit, a una risposta in SoapUI. È una semplice query xpath per abbinarli.

È possibile fare in modo che vengano restituiti errori/eccezioni "in scatola" e, naturalmente, quando non è in esecuzione, si avrà il caso di test "casa di nessuno".

Problemi correlati