Fixtures

Software screenshot:
Fixtures
Podrobnosti Software:
Verze: 0.3.14
Datum uploadu: 14 Apr 15
Vývojka: Robert Collins
Licence: Volný
Popularita: 17

Rating: 5.0/5 (Total Votes: 1)

svítidla je nástroj, který definuje smlouvu Python pro opakovaně použitelné logický stav / podporu, především pro testování jednotek. & Nbsp; Helper a adaptace logika je součástí, aby bylo snadné napsat vlastní příslušenství pomocí smlouvy svítidla. Lepidlo je kód za předpokladu, že je pomocí příslušenství, které splňují smlouvu svítidla v unittest kompatibilních testovacích případů jednoduchá a přímočará.
Proč svítidla
Standardní Python unittest.py neposkytuje žádnou zřejmou způsobu výroby a opětovné stát potřebuje v testovacím případě jiného, ​​než přidáním metody na testovací třídě. Tím se změní špatně - komplexní pomocné funkce propogating do hierarchie testovací třídy je pravidelný vzor, ​​kdy se tak stane. Zesměšňovat zatímco skvělý nástroj není sama o sobě bránit to (a pomocníci zesměšňovat složité věci, může se hromadit v stejným způsobem, pokud se umístí na zkušební třídě).
Vymezením jednotné smlouvu, kde pomocníci nezávisí na zkušební třídě jsme povolit, aby všechny pravidelné hygienické kód činnosti, které se uskuteční bez deformující vliv, že jsou v hierarchii třídy, který je modelování zcela jiná věc - což je to, co pomocníci na TestCase trpět.
O svítidla
Přípravek představuje určitý stav. Každé svítidlo má atributy na to, které jsou specifické pro upevnění. Například, přípravek představuje adresář, který může být použit pro dočasné soubory může mít atribut "cesta".
Vytváření svítidla
Minimálně, podtřída fixace, definovat instalační program ke spuštění stát a naplánovat vyčištění pro případy, kdy se Cleanup nazývá a je hotovo:
>>> Import unittest
>>> import příslušenství
>>> Třída NoddyFixture (fixtures.Fixture):
... Def setup (self):
... Super (NoddyFixture, self) .setUp ()
... Self.frobnozzle = 42
... Self.addCleanup (delattr, já, "frobnozzle")
To bude inicializovat frobnozzle při instalaci je nazývá, a je-li Cleanup nazývá zbavit frobnozzle atributu.
K dispozici je pomocník pro přizpůsobení nebo funguje pár do svítidla. klade výsledek funkce v fn_result:
>>> Import os.path
>>> Import shutil
>>> Import tempfile
>>> Def setup_function ():
... Návrat tempfile.mkdtemp ()
>>> Def teardown_function (přípravek):
... Shutil.rmtree (úchyt)
>>> Úchyt = fixtures.FunctionFixture (setup_function, teardown_function)
>>> Fixture.setUp ()
>>> Print os.path.isdir (fixture.fn_result)
Pravdivý
>>> Fixture.cleanUp ()
fixace API
Výše uvedený příklad uvádí některé fixace API. Tak, aby bylo možno vyčistit až poté, co byl použit přípravek, všechny přípravky definovat způsob pro vyčištění, která má být aktivována, když je přípravek ukončena.
Protože jeho hezké mít možnost vytvořit určitý soubor souvisejících přípravků před jejich využití, příslušenství také definovat způsob nastavení, která by měla být volána před pokusem o jejich použití.
Jedna obyčejná touha s příslušenství, které jsou drahé, je vytvořit a použít v mnoha testovacích případů; podporovat toto základní fixace také definuje resetu, který volá self.cleanUp (); self.setUp (). Přípravky, které mohou efektivněji dělat sami na jedno použití by se přepsat tuto metodu. To pak může být použita s roztroušenou zkušebním stavu přes věci, jako je testresources, setUpClass, nebo setUpModule.
Při použití přípravek s testem můžete ručně volat setup a Cleanup metody. Výhodnější však je použít přiložený lepidlo ze fixtures.TestWithFixtures, která umožňují mixin definující useFixture (camel případ, protože unittest je velbloud případ skrz) metoda. Bude Nastavení hovorů na baterii, volejte self.addCleanup (fixace) a naplánovat vyčištění, a vrátit přípravku. To umožňuje jeden zápis:
>>> import TestTools
>>> Import unittest
Všimněte si, že používáme TestTools tady TestCase jak musíme zajistit metodu TestCase.addCleanup.
& Nbsp; >>> třída NoddyTest (testtools.TestCase, fixtures.TestWithFixtures):
& Nbsp; ... def test_example (self):
& Nbsp; ... úchyt = self.useFixture (NoddyFixture ())
& Nbsp; ... self.assertEqual (42, fixture.frobnozzle)
& Nbsp; >>> result = unittest.TestResult ()
& Nbsp;. >>> _ = NoddyTest ("test_example"), běh (výsledek)
& Nbsp; >>> print result.wasSuccessful ()
& Nbsp; pravda
Svítidla provádět kontextovou protokol, takže můžete použít také přípravek jako kontextové manažer:
>>> S fixtures.FunctionFixture (setup_function, teardown_function) jako přípravku:
... Print os.path.isdir (fixture.fn_result)
Pravda

Požadavky na :

  • Python

Podobný software

CppSpec
CppSpec

3 Jun 15

nosango
nosango

11 May 15

DREAM Tool
DREAM Tool

3 Jun 15

testkit
testkit

20 Feb 15

Ostatní software developer Robert Collins

Komentáře k Fixtures

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