dingus

Software skärmdump:
dingus
Mjukvaruinformation:
Version: 0.3.4
Ladda upp dagen: 14 Apr 15
Utvecklare: Gary Bernhardt
Licens: Gratis
Popularitet: 12

Rating: nan/5 (Total Votes: 0)

Dingus är ungefär som en mock objekt. Den största skillnaden är att du inte ställer upp förväntningarna i förväg. Du kör bara din kod enligt en Dingus i stället för ett annat objekt eller klass, och det kommer att spela in vad som händer med det. Sedan, när din kod har utnyttjats, kan du göra påståenden om vad den gjorde till Dingus.
En ny Dingus skapas från Dingus klassen. Du kan ge dinguses namn, som hjälper till med felsökning dina undersökningar, särskilt när det finns flera dinguses i spel.
& Nbsp; >>> från Dingus importera Dingus
& Nbsp; >>> d = Dingus ('root')
& Nbsp; >>> d
& Nbsp;
Åtkomst alla attribut för en Dingus kommer tillbaka en ny Dingus.
& Nbsp; >>> d.something
& Nbsp;
Det finns några undantag för speciella Dingus metoder. Vi får se några i en bit.
En Dingus kan också kallas som en funktion eller metod. Den bryr sig inte hur många argument du ger den eller vad dessa argument är. Samtal till en Dingus kommer alltid tillbaka samma objekt, oavsett argumenten.
& Nbsp; >>> d ()
& Nbsp;
& Nbsp; >>> d ('argument')
& Nbsp;
& Nbsp; >>> d (55)
& Nbsp;
INSPELNING och påståenden
När som helst kan vi få en lista över samtal som har gjorts till en Dingus. Varje post i samtalslistan innehåller:
& Nbsp; * namnet på den metod som kallas (eller "()" om Dingus själv hette)
& Nbsp; * Argumenten, eller () om ingen
& Nbsp; * De sökord argumnets eller {} om ingen
& Nbsp; * Värdet som returneras till den som ringer
Här är en lista över de samtal som vi har gjort i d hittills:
& Nbsp; >>> från pprint import pprint
& Nbsp; >>> pprint (d.calls)
& Nbsp; [('()', (), {}, ),
& Nbsp; ('()', ('argument',), {}, ),
& Nbsp; ('()', (55,), {}, )]
Du kan filtrera samtal med namn, argument och sökords argument:
& Nbsp; >>> pprint (d.calls ('()', 55))
& Nbsp; [('()', (55,), {}, )]
Om du inte bryr dig om en viss argument värde, kan du använda värdet DontCare vid filtrering:
& Nbsp; >>> från Dingus importera DontCare
& Nbsp; >>> pprint (d.calls ('()', DontCare))
& Nbsp; [('()', ('argument',), {}, ),
& Nbsp; ('()', (55,), {}, )]
Dinguses kan göra mer än att bara ha attribut nås och att kallas. De stöder många Python operatörer. Målet är att göra det möjligt, och spela in, någon interaktion:
& Nbsp; >>> d = Dingus ('root')
& Nbsp; >>> (2 ** d.something) ['hej'] () / 100 * 'foo'
& Nbsp;
(Förhoppningsvis dina verkliga Dingus inspelningar inte kommer att se ut så här!)
patchning
Dingus ger ett sammanhang chef för lapp föremål under testerna. Till exempel:
& Nbsp; >>> från Dingus import lapp
& Nbsp; >>> import urllib2
& Nbsp; >>> med patch ('urllib2.urlopen'):
& Nbsp; ... print urllib2.urlopen .__ class__
& Nbsp;
& Nbsp; >>> trycket urllib2.urlopen .__ class__
& Nbsp;
Du kan även använda detta som en dekoratör på dina testmetoder:
& Nbsp; >>>patch ("urllib2.urlopen ')
& Nbsp; ... def test_something (själv):
& Nbsp; ... pass
& Nbsp; ...
FARLIGT MAGIC
Dingus kan också automatiskt ersätta en modulens globals när man kör tester. Detta gör att du kan skriva helt isolerade enhetstester. Se exempel / urllib2 / test_urllib2.py för ett exempel. Författaren inte längre rekommenderar denna funktion, eftersom det kan uppmuntra väldigt sköra tester. Du ska känna smärtan av manuellt hånfulla beroenden; . smärtan kommer att berätta när en klass samarbetar med för många andra

Krav :

  • Python

Liknande mjukvara

Peptest
Peptest

14 Apr 15

nose-bleed
nose-bleed

14 Apr 15

pyfix
pyfix

20 Feb 15

Acovea
Acovea

3 Jun 15

Annan programvara för utvecklare Gary Bernhardt

expecter
expecter

20 Feb 15

Kommentarer till dingus

Kommentarer hittades inte
Kommentar
Slå på bilder!