mi sento un po 'in colpa a lasciare una risposta così loquace come ho fatto prima, quindi ecco una più grave prendere su di esso:
Esaminiamo ciò che ci vuole per unit test del servizio. Un vero test unitario è un test automatico che testa una singola unità (nel tuo caso questo sarebbe il servizio web senza alcun sistema di back-end come database, ecc.). Come altri hanno sottolineato, il corretto collaudo dell'unità del servizio è probabilmente troppo tardi in questo caso.
Ciò non significa che non è possibile utilizzare un'unità di test framework (come MSTest, xUnit.net, NUnit, ecc.) Per eseguire i test di servizio. Confrontiamo che scenario per lo sviluppo di una pagina aspx e getta:
- In entrambi i casi ho intenzione di assumere che il servizio Web è già stato distribuito, configurato e in esecuzione, perché sarebbe probabilmente la caso nello scenario di aspx.
- In in entrambi i casi è necessario aggiungere un riferimento di servizio al progetto di test per generare un proxy del servizio Web.
- In in entrambi i casi si dovrebbe scrivere il codice che applica i valori ai parametri di richiesta per i metodi del servizio Web.
- In in entrambi i casi è necessario richiamare le operazioni del servizio Web.
Quindi cosa c'è di diverso?
- Nello scenario aspx, è necessario raccogliere i valori dai campi modulo e assegnare tali valori ai parametri del metodo di servizio. Utilizzando un framework di test, è possibile scrivere direttamente quei valori. In realtà è più facile scrivere il test automatico. 1-0
- Nello scenario aspx, è necessario scrivere codice che raccolga i dati di risposta e li scriva nella pagina Web. Al contrario, con un framework di test, è necessario scrivere asserzioni. Direi che è più facile scrivere asserzioni, ma è un po 'soggettivo quindi lascerò questo come un pareggio - ancora 1-0
- Nello scenario di test automatico, dovrai scrivere molti test con diversi valori, quindi questo è più codice che dovrai scrivere rispetto all'opzione aspx. 1-1
- Con una suite di test automatizzato, è possibile successivamente eseguire la suite di test automatizzato con il database più volte al giorno senza sforzo aggiuntivo, mentre si avrebbe bisogno di input e manualmente manualmente verificare i risultati nel scenario aspx per ogni prova di esecuzione. Questa è una grande vittoria nello sforzo di test. 2-1 (e che è conservatore)
In conclusione, vorrei dire che se non si ostini a fare vera e propria unità di test in questo caso, ma semplicemente di utilizzare un framework di test unità di scrivere automatizzate test, dovresti stare meglio con i test automatici che con la pagina aspx. Lo sforzo di sviluppo sarà più o meno lo stesso.
Per il tuo prossimo progetto, puoi vedere se puoi usare TDD dall'inizio, ma questa è un'altra battaglia.
Buona fortuna.
fonte
2009-09-16 17:41:13
Buona fortuna - spero che vincerai questo argomento –
Chiamare le idee del tuo capo stupide e stupide non è il modo migliore per convincerlo che TDD ha ragione. :-) Indipendentemente dal fatto che si utilizzi un test unitario, potrebbe essere una buona idea impostare una semplice pagina .aspx per testare manualmente scenari specifici. –
Sono dalla parte di una battaglia persa. "Non abbiamo bisogno di farlo, è eccessivo" – PositiveGuy