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

Rispondere a