<div dir="ltr">Valerio,<br><br><div class="gmail_quote"><div dir="ltr">On Thu, 25 Feb 2016 at 10:59 Valerio Maggio <<a href="mailto:valerio.maggio@gmail.com">valerio.maggio@gmail.com</a>> wrote:</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div>Sono particolarmente curioso di capire quale sia la *tua* definizione di "comportamento" di una funzione e come questa possa essere astratto a partire dai test.</div><div>Ad una rapidissima occhiata al codice su GitHub non sono riuscito a trovare nulla a riguardo...</div><div><br></div><div>Mi puoi dire di più su questo? </div></div></div></div><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div></div></div></div></div></blockquote><div><br></div><div>Per avere un'idea la cosa ideale è seguire il quickstart:</div><div><br></div><div><a href="https://pytest-nodev.readthedocs.org/en/stable/quickstart.html">https://pytest-nodev.readthedocs.org/en/stable/quickstart.html</a><br></div><div><br></div><div>che contiene un esempio semplice. Poi ho iniziato a lavorare ad un tutorial che contiene qualche altro esempio di specification tests:</div><div><br></div><div>git clone <a href="https://github.com/nodev-io/nodev-tutorial.git">https://github.com/nodev-io/nodev-tutorial.git</a></div><div><br></div><div>L'idea generale è di isolare il comportamento ad esempio di una funzione e di scrivere uno o più test che lo specificano entrando il meno possibile nei dettagli dell'implementazione. Ad esempio in test_rfc3986_parse.py gli assert sono fatti con `in` per non fare assunzioni sull'ordine dello split, inoltre l'assert sulla porta è scritto:</div><div><br></div><div>assert 8080 in tokens or '8080' in tokens<br></div><div><br></div><div>in modo da non fare assunzioni sulla conversione a int.</div><div><br></div><div>Alessandro</div><div><br></div><div><br></div><div><br></div><div><br></div></div></div>