dingus

Software screenshot:
dingus
Software informatie:
Versie: 0.3.4
Upload datum: 14 Apr 15
Ontwikkelaar: Gary Bernhardt
Licentie: Gratis
Populariteit: 12

Rating: nan/5 (Total Votes: 0)

dingus is een soort als een voorwerp van spot. Het belangrijkste verschil is dat je niet van tevoren opgezet verwachtingen. Je alleen nog maar uw code, met behulp van een dingus in plaats van een ander object of klasse, en het zal vast te leggen wat er gebeurt met het. Dan, als je code is uitgeoefend, kan je beweringen over wat zij heeft gedaan om de Dingus maken.
Een nieuwe dingus wordt gemaakt op basis van de klasse Dingus. U kunt dinguses namen, die helpt bij het debuggen van uw testen, vooral wanneer er meerdere dinguses in het spel te geven.
& Nbsp; >>> van Dingus importeren Dingus
& Nbsp; >>> d = Dingus ('root')
& Nbsp; >>> d
& Nbsp;
Toegang tot alle attributen van een dingus zal een nieuwe Dingus terugkeren.
& Nbsp; >>> d.something
& Nbsp;
Er zijn een paar uitzonderingen voor speciale Dingus methoden. We zullen sommigen in een beetje te zien.
Een dingus kan ook worden genoemd als een functie of methode. Het maakt niet uit hoeveel argumenten je het eens of wat die argumenten zijn. Oproepen naar een dingus altijd hetzelfde object te retourneren, ongeacht de argumenten.
& Nbsp; >>> d ()
& Nbsp;
& Nbsp; >>> d ('argument')
& Nbsp;
& Nbsp; >>> d (55)
& Nbsp;
OPNAME en beweringen
Op elk moment kunnen we een lijst van gesprekken die zijn gedaan om een ​​Dingus krijgen. Elk item in de bellijst bevat:
& Nbsp; * de naam van de methode genaamd (of "()" als de dingus zelf werd genoemd)
& Nbsp; * De argumenten, of () als er geen
& Nbsp; * Het sleutelwoord argumnets, of {} als geen
& Nbsp; * De waarde die werd teruggegeven aan de beller
Hier is een lijst van de gesprekken die we tot nu toe gedaan om d:
& Nbsp; >>> van pprint import pprint
& Nbsp; >>> pprint (d.calls)
& Nbsp; [('()', (), {}, ),
& Nbsp; ('()', ('argument',), {}, ),
& Nbsp; ('()', (55,), {}, )]
U kunt oproepen op naam, argumenten, en trefwoord argumenten te filteren:
& Nbsp; >>> pprint (d.calls ('()', 55))
& Nbsp; [('()', (55,), {}, )]
Als je niet de zorg over de waarde van een bepaald argument's, kunt u de waarde DontCare gebruiken bij het filteren:
& Nbsp; >>> van Dingus importeren DontCare
& Nbsp; >>> pprint (d.calls ('()', DontCare))
& Nbsp; [('()', ('argument',), {}, ),
& Nbsp; ('()', (55,), {}, )]
Dinguses kan meer dan alleen hebben attributen benaderd en worden genoemd doen. Ze ondersteunen vele Python exploitanten. Het doel is om toe te staan, en op te nemen, elke interactie:
& Nbsp; >>> d = Dingus ('root')
& Nbsp; >>> (2 ** d.something) ['hallo'] () / 100 * 'foo'
& Nbsp;
(Hopelijk uw real-world dingus opnames zullen niet uitzien!)
patching
Dingus biedt een context manager voor het patchen van objecten tijdens de tests. Bijvoorbeeld:
& Nbsp; >>> van Dingus import patch
& Nbsp; >>> import urllib2
& Nbsp; >>> met patch ('urllib2.urlopen'):
& Nbsp; ... print urllib2.urlopen .__ class__
& Nbsp;
& Nbsp; >>> print urllib2.urlopen .__ class__
& Nbsp;
U kunt dit ook gebruiken als een decorateur op uw testmethoden:
& Nbsp; >>>patch ('urllib2.urlopen')
& Nbsp; ... def test_something (zelf):
& Nbsp; ... pas
& Nbsp; ...
GEVAARLIJKE MAGIC
Dingus kan ook automatisch vervangen globals van een module bij het uitvoeren van tests. Dit stelt u in staat om volledig geïsoleerd unit tests te schrijven. Zie voorbeelden / urllib2 / test_urllib2.py voor een voorbeeld. De auteur raadt niet langer deze functie, omdat het zeer broos tests kunnen stimuleren. Je moet de pijn van de hand spottende afhankelijkheden voelen; . de pijn zal u vertellen wanneer een klas samen met te veel anderen

Eisen

  • Python

Vergelijkbare software

jstestnetlib
jstestnetlib

20 Feb 15

dfuzz
dfuzz

12 May 15

LAVA Server
LAVA Server

20 Feb 15

tdaemon
tdaemon

11 May 15

Andere software van ontwikkelaar Gary Bernhardt

expecter
expecter

20 Feb 15

Reacties op dingus

Reacties niet gevonden
Commentaar toe te voegen
Zet op de beelden!