Fixtures

Skjermbilde programvare:
Fixtures
Prog.varedetaljer:
Versjon: 0.3.14
Last opp dato: 14 Apr 15
Utvikler: Robert Collins
Lisens: Gratis
Popularitet: 17

Rating: 5.0/5 (Total Votes: 1)

Lamper er et verktøy som definerer en Python kontrakt for gjenbrukbare stat / support logikk, primært for enhetstesting. & Nbsp; Helper og tilpasning logikk er inkludert for å gjøre det enkelt å skrive dine egne inventar ved hjelp av inventar kontrakt. Lim koden er gitt som gjør bruk inventar som oppfyller Inventar kontrakt i unittest kompatible testtilfeller enkel og rett frem.
Hvorfor Inventar
Standard Python unittest.py gir ingen åpenbar metode for å lage og gjenbruk stat trengs i en test annet enn ved å legge en metode på testen klassen. Dette skalerer dårlig - komplekse hjelpefunksjoner propogating opp en test klassehierarkiet er et fast mønster når dette er gjort. Tentamen mens et flott verktøy ikke selv forhindre dette (og hjelpere å spotte komplekse ting kan akkumuleres på samme måte hvis de plasseres på test klasse).
Ved å definere en uniform kontrakt hvor hjelpere har ingen avhengighet av testen klassen vi tillate alle vanlige kode hygiene aktiviteter skal foregå uten avsporende av å være i en klasse hierarki som modellerer en helt annen ting - som er hva hjelpere på en Testcase lider av.
Om Inventar
En av ligaen representerer noen stat. Hver ligaen har attributter på det som er spesifikke for den ligaen. For eksempel kan et innslag som representerer en katalog som kan brukes for midlertidige filer har en attributt 'path'.
Opprette Inventar
Minimal, underklasse ligaen, definere oppsett for å initialisere staten og planlegge en opprydding for når opprydding kalles og du er ferdig:
>>> Import unittest
>>> import inventar
>>> Klasse NoddyFixture (fixtures.Fixture):
... Def Setup (egen-):
... Super (NoddyFixture, selv) .setUp ()
... Self.frobnozzle = 42
... Self.addCleanup (delattr, selv, 'frobnozzle')
Dette vil initial frobnozzle når oppsettet er kalt, og når opprydding kalles kvitte seg med den frobnozzle attributt.
Det er en hjelper for å tilpasse en funksjon eller funksjon pair inn Fixtures. det setter resultatet av funksjonen i fn_result:
>>> Import os.path
>>> Import shutil
>>> Import tempfile
>>> Def setup_function ():
... Tilbake tempfile.mkdtemp ()
>>> Def teardown_function (ligaen):
... Shutil.rmtree (ligaen)
>>> Ligaen = fixtures.FunctionFixture (setup_function, teardown_function)
>>> Fixture.setUp ()
>>> Print os.path.isdir (fixture.fn_result)
Sann
>>> Fixture.cleanUp ()
Den ligaen API
Eksempelet ovenfor introduserer noen av ligaen API. For å være i stand til å rydde opp etter et innslag har blitt brukt, alle inventar definere en opprydding metode som skal kalles når et innslag er ferdig med.
Fordi det er fint å være i stand til å bygge et bestemt sett av relaterte inventar på forhånd for å bruke dem, inventar har også definere en oppsettmetode som bør kalles før du prøver å bruke dem.
Ett felles ønske med inventar som er dyrt å skape er å bruke dem i mange testtilfeller; å støtte denne basen ligaen definerer også en reset som kaller self.cleanUp (); self.setUp (). Inventar som mer effektivt kan gjøre seg gjenbruk bør overstyre denne metoden. Dette kan så brukes med flere testtilstand via ting som testresources, setUpClass eller setUpModule.
Når du bruker et innslag med en test kan du manuelt kalle oppsettet og opprydning. Mer praktisk om er å bruke den medfølgende lim fra fixtures.TestWithFixtures som gir en mixinen definere useFixture (kamel saken fordi unittest er kamel tilfelle hele) metoden. Det vil kalle oppsett på ligaen, ring self.addCleanup (ligaen) for å planlegge en opprydding, og returnere ligaen. Dette lar en skrive:
>>> import testtools
>>> Import unittest
Merk at vi bruker testtools testcase her som vi trenger for å garantere en TestCase.addCleanup metode.
& Nbsp; >>> klasse NoddyTest (testtools.TestCase, fixtures.TestWithFixtures):
& Nbsp; ... def test_example (egen-):
& Nbsp; ... ligaen = self.useFixture (NoddyFixture ())
& Nbsp; ... self.assertEqual (42, fixture.frobnozzle)
& Nbsp; >>> resultat = unittest.TestResult ()
& Nbsp;. >>> _ = NoddyTest ('test_example') kjører (resultat)
& Nbsp; >>> skrive result.wasSuccessful ()
& Nbsp; Sann
Inventar implementere sammenheng protokollen, slik at du kan også bruke et innslag som en kontekst leder:
>>> Med fixtures.FunctionFixture (setup_function, teardown_function) som ligaen:
... Print os.path.isdir (fixture.fn_result)
True

Krav :

  • Python

Lignende programvare

nose_fixes
nose_fixes

14 Apr 15

PytestFramework
PytestFramework

20 Feb 15

Zato
Zato

20 Feb 15

lintswitch
lintswitch

15 Apr 15

Annen programvare fra utvikleren Robert Collins

Kommentarer til Fixtures

Kommentarer ikke funnet
Legg til kommentar
Slå på bilder!