I doctest Python associano test semplici al codice sorgente (in Python si trovano nella documentazione della funzione). More info and examples here.Clojure equivalente al doctest Python?
C'è qualcosa di simile per Clojure?
Sono a conoscenza dei test di unità con clojure.test
, ma cerco qualcosa di più strettamente integrato con la fonte (in genere i test di unità sono in file diversi, qui voglio avere il test "dentro" il defn
).
Cercando in giro ho trovato this, ma sembra molto poco lispy (i test sono nel testo vero e proprio, come Python -? Sicuramente una macro che si estende defn
sarebbe preferibile).
O forse c'è un altro modo per risolvere il problema generale, che è che ho alcuni test (in genere semplici cose che dimostrano le proprietà di base della funzione) che sarebbe meglio incluso nella documentazione (sto usando marginalia) rispetto a file di test dell'unità separati.
aggiornamento Ecco un esempio: Ho una funzione che calcola la distanza (in manhattan) (in pixel) da un rettangolo di pixel al centro dell'immagine. Sembra semplice, ma è complicato da cose come la differenza di significato di "centro" per le immagini con numeri pari o dispari di pixel sui lati o da quale parte del blocco si misura. Quindi ho dovuto scrivere alcuni test solo per ottenere il codice giusto. E ora guardo i documenti e sarebbe davvero meglio se i documenti includessero quei test perché spiegano meglio delle parole cosa fa la funzione ...
sembra perfetto! non avevo idea che esistesse. ma come lo gestisci? lo chiama lein test? –
usa la funzione test: (test # 'mymax), doc: http://clojuredocs.org/clojure_core/clojure.core/test –