dingus

Software screenshot:
dingus
Dettagli del software:
Versione: 0.3.4
Data di caricamento: 14 Apr 15
Sviluppatore: Gary Bernhardt
Licenza: Libero
Popolarità: 12

Rating: nan/5 (Total Votes: 0)

dingus è come una sorta di oggetto fittizio. La differenza principale è che non si imposta aspettative prima del tempo. Basta eseguire il codice, utilizzando un dingus al posto di un altro oggetto o di classe, e sarà registrare ciò che accade ad esso. Poi, una volta che è stato esercitato il codice, è possibile fare affermazioni su ciò che ha fatto ai dingus.
Un nuovo dingus viene creata dalla classe Dingus. Potete dare dinguses nomi, che aiuta con il debug i test, soprattutto quando ci sono più dinguses in gioco.
& Nbsp; >>> da dingus import Dingus
& Nbsp; >>> d = Dingus ('root')
& Nbsp; >>> d
& Nbsp;
Accesso qualsiasi attributo di un dingus tornerà un nuovo dingus.
& Nbsp; >>> d.something
& Nbsp;
Ci sono alcune eccezioni per i metodi Dingus speciali. Vedremo un po 'in un po'.
Un dingus può anche essere chiamato come una funzione o metodo. Non importa quanti argomenti si dà o che tali argomenti. Le chiamate verso un dingus restituirà sempre lo stesso oggetto, indipendentemente dalle argomentazioni.
& Nbsp; >>> d ()
& Nbsp;
& Nbsp; >>> d ('argomento')
& Nbsp;
& Nbsp; >>> d (55)
& Nbsp;
REGISTRAZIONE E AFFERMAZIONI
In qualsiasi momento siamo in grado di ottenere un elenco di chiamate che sono state fatte per un dingus. Ogni voce nella lista delle chiamate contiene:
& Nbsp; * il nome del metodo chiamato (o "()" se il dingus stesso è stato chiamato)
& Nbsp; * Gli argomenti, o () se nessuno
& Nbsp; * I argumnets parole chiave, o {} se nessuno
& Nbsp; * Il valore che è stato restituito al chiamante
Ecco un elenco delle chiamate che abbiamo fatto a d finora:
& Nbsp; >>> da pprint import pprint
& Nbsp; >>> pprint (d.calls)
& Nbsp; [('()', (), {}, ),
& Nbsp; ('()', ('argomento',), {}, ),
& Nbsp; ('()', (55,), {}, )]
È possibile filtrare le chiamate per nome, gli argomenti, e gli argomenti di parole chiave:
& Nbsp; >>> pprint (d.calls ('()', 55))
& Nbsp; [('()', (55,), {}, )]
Se non si cura di valore di un particolare argomento, è possibile utilizzare il valore DontCare quando filtraggio:
& Nbsp; >>> da dingus import DontCare
& Nbsp; >>> pprint (d.calls ('()', DontCare))
& Nbsp; [('()', ('argomento',), {}, ),
& Nbsp; ('()', (55,), {}, )]
Dinguses possono fare di più che avere attributi accessibili e di essere chiamato. Supportano molti operatori Python. L'obiettivo è quello di consentire, e registrare, ogni interazione:
& Nbsp; >>> d = Dingus ('root')
& Nbsp; >>> (2 ** d.something) ['ciao'] () / 100 * 'pippo'
& Nbsp;
(Speriamo che le registrazioni Dingus mondo reale non sarà simile a questo!)
patching
Dingus fornisce un gestore di contesto per l'applicazione di patch oggetti durante i test. Per esempio:
& Nbsp; >>> dal cerotto import dingus
& Nbsp; >>> urllib2 import
& Nbsp; >>> con patch ('urllib2.urlopen'):
& Nbsp; ... print urllib2.urlopen .__ class__
& Nbsp;
& Nbsp; >>> print urllib2.urlopen .__ class__
& Nbsp; <'funzione' tipo>
È inoltre possibile utilizzare questo come decoratore sui vostri metodi di prova:
& Nbsp; >>>patch ('urllib2.urlopen')
& Nbsp; ... def test_something (self):
& Nbsp; ... passaggio
& Nbsp; ...
MAGIC PERICOLOSO
Dingus può anche sostituire automaticamente globali di un modulo durante l'esecuzione di test. Questo permette di scrivere unit test completamente isolati. Vedi gli esempi / urllib2 / test_urllib2.py per un esempio. L'autore non raccomanda questa funzione, in quanto può incoraggiare test molto fragili. Dovreste sentire il dolore delle dipendenze beffardi manualmente; . il dolore vi dirà quando una classe collabora con troppi altri

Requisiti :

  • Python

Programmi simili

tdaemon
tdaemon

11 May 15

searchtester
searchtester

12 May 15

LAVA Server
LAVA Server

20 Feb 15

pyzombie
pyzombie

12 May 15

Altri software di sviluppo Gary Bernhardt

expecter
expecter

20 Feb 15

Commenti a dingus

I commenti non trovato
Aggiungi commento
Accendere le immagini!