> Perché, e qui lo dichiaro pubblicamente, i doctest sono la tecnologia di > test più abusata e meno adatta che sia venuto in mente a chiunque abbia > visto un prompt fatto così: >>> > > I doctest sono un brillante modo di testare... la documentazione!!! da > quando sono diventati un modo di testare il programma? Purtroppo da > abbastanza presto, e sono uno strumento oscenamente scomodo per farlo, nel > senso che costringono a contorsioni da kamasutra per eliminare la > variabilità che c'è nell'output dei comandi [1] o per mettere insieme una > test suite con setup e teardown. In tutto questo le docstring perdono il > significato originale: essere documentazione concisa. > > [1] > http://docs.python.org/library/doctest.html#option-flags-and-directives > > Ed Loper, autore di Epydoc (credo anche uno degli autori di doctest), ha > usato solo doctest per documentare Epydoc stesso [2]. Ma tu guarda che si è > dovuto inventare [3] per far girare una test suite un po' più complessa?!?! > Ne è valsa la pena? A me non sembra. > > [2] > http://epydoc.svn.sourceforge.net/viewvc/epydoc/trunk/epydoc/src/epydoc/test/
A me pare che questo esempio sia un esempio dove la doctest abbia un senso e sia anche più chiaro di quanto potrebbero essere degli unittest o test di nose/py.test, che è probabilmntee simile a quello che dicevi prima: test della documentazione. > [3] > http://epydoc.svn.sourceforge.net/viewvc/epydoc/trunk/epydoc/src/epydoc/test/util.py?revision=1502&view=markup Questo molto meno, ma: 1. probabilmente anche in uno unittest avrebbero dovuto esserci delle test/helper function fatte per rendere i test più leggibili... 2. proprio perché ce ne è più di uno mi pare che sia corretto scegliere il migliore per ogni singola situazione. E` corretto chiedere che si evitino contorsionismi strani, ma spesso la leggibilità di test fatti con doctest è decisamente elevata. Sono anche convinto che la flessibilità delle unittest (o simili) sia molto maggiore in varie circostanze per cui non ci rinuncerei affatto. sandro *:-) _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python