dingus

Software screenshot:
dingus
Podrobnosti Software:
Verze: 0.3.4
Datum uploadu: 14 Apr 15
Vývojka: Gary Bernhardt
Licence: Volný
Popularita: 12

Rating: nan/5 (Total Votes: 0)

dingus je něco jako falešný objektu. Hlavním rozdílem je, že nemusíte nastavit očekávání dopředu. Stačí spustit kód, pomocí dingus místo jiného objektu nebo třídy, a to bude zaznamenávat, co se s ním stane. Poté, co váš kód byl uplatněna, můžete si tvrzení o tom, co to dělalo s dingus.
Nový dingus je vytvořen z třídy Dingus. Můžete dát dinguses jména, což pomáhá při ladění vaše testy, zejména pokud existuje více dinguses ve hře.
& Nbsp; >>> od dingus import Dingus
& Nbsp; >>> d = Dingus ("kořen"),
& Nbsp; d >>>
& Nbsp;
Přístup ke všem vlastnostem, o dingus vrátí nové dingus.
& Nbsp; >>> d.something
& Nbsp;
Existuje několik výjimek pro speciální dingus metody. Uvidíme, někteří v trochu.
Dingus může být také nazýván jako funkce nebo metody. To není jedno, kolik argumenty ji dát, nebo to, co tyto argumenty jsou. Hovorů na dingus vždy vrátí stejný objekt, bez ohledu na argumenty.
& Nbsp; >>> d ()
& Nbsp;
& Nbsp; >>> d ("Argument")
& Nbsp;
& Nbsp; >>> d (55)
& Nbsp;
ZÁZNAM a tvrzení,
V každém okamžiku se můžeme dostat seznam hovorů, které byly provedeny do dingus. Každá položka v seznamu volání obsahuje:
& Nbsp; * název metody zvané (nebo "()", pokud byla volána dingus sám)
& Nbsp; * Argumenty, nebo (), pokud žádný
& Nbsp; * klíčového slova argumnets, nebo {}, pokud žádný
& Nbsp; * Hodnota, která byla vrácena k volajícímu
Zde je seznam hovorů jsme udělali až d tak daleko:
& Nbsp; >>> od pprint dovozu pprint
& Nbsp; >>> pprint (d.calls)
& Nbsp; [("()", () {} ),
& Nbsp; ("()", ("argumentace",) {} ),
& Nbsp; ("()", (55,), {}, )]
Můžete filtrovat hovory podle názvu, argumentů a klíčových slov argumenty:
& Nbsp; >>> pprint (d.calls ("()", 55))
& Nbsp; [("()", (55,), {}, )]
Pokud nechcete starat o hodnotu konkrétního argumentu, můžete použít hodnotu DontCare při filtrování:
& Nbsp; >>> od dingus import DontCare
& Nbsp; >>> pprint (d.calls ("()", DontCare))
& Nbsp; [("()", ("argumentace",) {} ),
& Nbsp; ("()", (55,), {}, )]
Dinguses může udělat víc, než jen mít vlastnosti přístupné a nazvat. Podporují mnoho operátorů Python. Cílem je umožnit, a zaznamenat, žádné zásahy:
& Nbsp; >>> d = Dingus ("kořen"),
& Nbsp; >>> (2 ** d.something) ['ahoj'] () / 100 * "foo"
& Nbsp;
(Doufám, že vaše real-svět dingus nahrávky nebude vypadat takhle!)
záplatování
Dingus poskytuje kontextovou manažer pro záplatování objekty v průběhu zkoušek. Například:
& Nbsp; >>> od dingus dovozu náplasti
& Nbsp; >>> import urllib2
& Nbsp; >>> s patchem ("urllib2.urlopen"):
& Nbsp; ... print urllib2.urlopen .__ class__
& Nbsp;
& Nbsp; >>> print urllib2.urlopen .__ class__
& Nbsp; <"funkcí" typ>
Můžete také použít jako malíř pokojů na testovacích metod:
& Nbsp; >>>patch ("urllib2.urlopen")
& Nbsp; ... def test_something (self):
& Nbsp; ... průkaz
& Nbsp; ...
NEBEZPEČNÝ MAGIC
Dingus může také při provádění zkoušek automaticky nahradí globals modul je. To vám umožní psát zcela izolované jednotkové testy. Podívejte se na příklady / urllib2 / test_urllib2.py pro příklad. Autor již doporučuje tuto funkci, protože to může povzbudit velmi křehké testy. Měli byste cítit bolest ručně uštěpačné závislostí; , bolest vám poradí, kdy třída spolupracuje s příliš mnoha dalšími

Požadavky na :

  • Python

Podobný software

Clamity
Clamity

12 May 15

nose-kleenex
nose-kleenex

15 Apr 15

EXQUIRES
EXQUIRES

20 Feb 15

Ostatní software developer Gary Bernhardt

Komentáře k dingus

Komentáře nebyl nalezen
Přidat komentář
Zapnout obrázky!