dingus

Software screenshot:
dingus
Software detaljer:
Version: 0.3.4
Upload dato: 14 Apr 15
Udvikler: Gary Bernhardt
Licens: Gratis
Popularitet: 76

Rating: 4.0/5 (Total Votes: 2)

Dingus er lidt ligesom en mock objekt. Den væsentligste forskel er, at du ikke oprettet forventningerne forud for tid. Du skal bare køre din kode ved hjælp af en Dingus i stedet for et andet objekt eller klasse, og det vil optage hvad der sker med det. Så, når din kode er blevet udnyttet, kan du gøre påstande om, hvad det gjorde til Dingus.
En ny Dingus oprettes fra Dingus klassen. Du kan give dinguses navne, som hjælper med debugging din test, især når der er flere dinguses i spil.
& Nbsp; >>> fra Dingus importerer Dingus
& Nbsp; >>> d = Dingus ("root")
& Nbsp; >>> d
& Nbsp;
Adgang enhver egenskab ved en Dingus vil returnere en ny Dingus.
& Nbsp; >>> d.something
& Nbsp;
Der er nogle få undtagelser for særlige Dingus metoder. Vi vil se nogle i lidt.
En Dingus kan også kaldes som en funktion eller metode. Det er ligeglad med, hvor mange argumenter du giver det, eller hvad disse argumenter. Opkald til en Dingus vil altid vende tilbage det samme objekt, uanset argumenterne.
& Nbsp; >>> d ()
& Nbsp;
& Nbsp; >>> d (»argument«)
& Nbsp;
& Nbsp; >>> d (55)
& Nbsp;
OPTAGELSE og påstande
Til enhver tid kan vi få en liste over opkald, der er foretaget til en Dingus. Hver post i opkaldslisten indeholder:
& Nbsp; * navn metode kaldet (eller "()", hvis Dingus selv blev kaldt)
& Nbsp; * Argumenterne, eller () hvis ingen
& Nbsp; * De søgeord argumnets eller {}, hvis ingen
& Nbsp; * Den værdi, blev returneret til den, der ringer
Her er en liste over de opkald, vi har foretaget på d indtil nu:
& Nbsp; >>> fra pprint import pprint
& Nbsp; >>> pprint (d.calls)
& Nbsp; [(() ", (), {}, ),
& Nbsp; (() ", (» argument «,), {}, ),
& Nbsp; (() ", (55,), {}, )]
Du kan foretage opkald ved navn, argumenter og nøgleord argumenter:
& Nbsp; >>> pprint (d.calls (() ", 55))
& Nbsp; [(() ", (55,), {}, )]
Hvis du er ligeglad om et bestemt argument værdi, kan du bruge værdien DontCare når filtrering:
& Nbsp; >>> fra Dingus importerer DontCare
& Nbsp; >>> pprint (d.calls ("()", DontCare))
& Nbsp; [(() ", (» argument «,), {}, ),
& Nbsp; (() ", (55,), {}, )]
Dinguses kan gøre mere end blot have attributter adgang og kaldes. De støtter mange Python operatører. Målet er at gøre det muligt, og registrere enhver interaktion:
& Nbsp; >>> d = Dingus ("root")
& Nbsp; >>> (2 ** d.something) ['hello'] () / 100 * 'foo'
& Nbsp;
(Forhåbentlig din virkelige verden Dingus optagelser vil ikke se sådan ud!)
Patching
Dingus giver en kontekst manager for patching objekter under tests. For eksempel:
& Nbsp; >>> fra Dingus import patch
& Nbsp; >>> import urllib2
& Nbsp; >>> med patch (»urllib2.urlopen):
& Nbsp; ... print urllib2.urlopen .__ class__
& Nbsp;
& Nbsp; >>> print urllib2.urlopen .__ class__
& Nbsp;
Du kan også bruge dette som en dekoratør på dine testmetoder:
& Nbsp; >>>patch (»urllib2.urlopen)
& Nbsp; ... def test_something (selv-):
& Nbsp; ... pass
& Nbsp; ...
FARLIGT MAGIC
Dingus kan også automatisk erstatte en modulets Globals når du kører tests. Dette giver dig mulighed for at skrive fuldt isolerede test enhed. Se eksempler / urllib2 / test_urllib2.py for et eksempel. Forfatteren ikke længere anbefaler denne funktion, da det kan fremme meget skøre tests. Du skal føle smerten af ​​manuelt spottende afhængigheder; . smerten vil fortælle dig, når en klasse samarbejder med for mange andre

Krav :

  • Python

Lignende software

crpcut
crpcut

20 Feb 15

lava-fastmodels
lava-fastmodels

14 Apr 15

LAMPcheck
LAMPcheck

2 Jun 15

Andre software developer Gary Bernhardt

expecter
expecter

20 Feb 15

Kommentarer til dingus

Kommentarer ikke fundet
Tilføj kommentar
Tænd billeder!