On Mon, 10 Nov 2008 16:54:07 +0100, "Giovanni Marco Dall'Olio" <[EMAIL PROTECTED]> wrote: > 2008/11/10 Fabrizio Mancini <[EMAIL PROTECTED]>: >> Ciao a tutti, >> sono abbastanza nuovo sul discorso python e pyunit, e soprattutto quello > che >> riguarda lo unit testing. >> Volevo chiedere consiglio su come poter fare il test di classi che si >> occupano di interfacciarsi con i database. >> Avete esperienze e / o consigli su come procedere? >> ho letto un po in giro sui mock / stub e diciamo che ne ho ricavato > poche >> idee ma molto confuse. >> Last but not least, ho pensato di usare il modulo pyunit, ma ho visto > che ne >> esistono altri. >> Avete anche a tal riguardo consigli e suggerimenti?
Io ho sempre usato unittest, ma i test dei database sono un po' rompiscatole: ho sempre dovuto fare dei magheggi per assicurarmi di lanciare un setup solo una volta per ogni test run anzichè ad ogni test case e cose del genere. Per questo motivo, ora come ora, userei uno strumento più raffinato, tipo nose (http://somethingaboutorange.com/mrl/projects/nose/). > Non ti saprei dire, ma per una situazione simile io ho intenzione di > usare doctest (almeno fino a un certo punto). > Se devi scrivere delle classi che verranno utilizzate da altre > persone, o hai paura di dimenticarti qualcosa in futuro, le doctest > sono molto comode e ti permettono di avere sia degli esempi che > faranno capire molto bene al tuo cliente/collaboratori quello che > scriverai, che dei test da utilizzare al volo. Ho paura che i doctest siano un po' semplificati per questo tipo di testing. Testando i db, di solito il setup/teardown delle test suite sono molto importanti, e non mi sembra sia possibile un gran controllo con i doctest. Secondo me i doctest sono più indicati quando gli oggetti sono del tutto autocontenuti, non quando devi testare una frontiera dell'applicativo. -- Daniele Varrazzo - Develer S.r.l. http://www.develer.com _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python