<div dir="ltr">Valerio,<br><br><div class="gmail_quote"><div dir="ltr">On Thu, 25 Feb 2016 at 13:46 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>Si avevo guardato il QuickStart.. Se ho capito bene quello che realizzi con il tuo plugin è di cercare una funzione Python che implementi il comportamento specificato nel test, giusto ?</div></blockquote><div><br></div><div>Esatto.</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>In altri termini: il test serve da specifica e il plugin cerca (in stdlib o site-packages) una funzione che implementa quella specifica.</div><div><br></div><div>La mia domanda era: questo matching sul comportamento come lo hai formalizzato/implementato/tradotto nel tuo plugin? </div></blockquote><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Provo a fare una ipotesi: come la funzione che passa tutti (o parzialmente) i test della specifica?</blockquote><div><br></div><div>Quasi completamente esatto, il plugin esegue ciascuno dei test passando come `wish` una per una tutte le funzioni che riesce a trovare in locale (le varie opzioni servono ad aumentare o ridurre lo spazio di ricerca) e nel summary vengono riportate tutte le funzioni che passano ciascun test. In questa maniera è possibile realizzare specifiche più o meno stringenti, all'interno della stessa test suite (vedi sempre test_rfc3986_parse.py [1] per un esempio).</div><div><br></div><div>Ovviamente trattandosi di una tecnica piuttosto nuova è importante scrivere buona documentazione e è quello su cui mi sto impegnando ora. Ci sono articoli accademici pubblicati a riguardo, ma non credo ci sia niente di divulgativo, di solito la tecnica viene chiamata test-driven search o test-driven reuse.</div><div><br></div><div>Alessandro</div><div><br></div><div><br></div><div>[1] <a href="https://github.com/nodev-io/nodev-tutorial/blob/master/tests/test_rfc3986_parse.py">https://github.com/nodev-io/nodev-tutorial/blob/master/tests/test_rfc3986_parse.py</a></div></div></div>