Fixtures

Software screenshot:
Fixtures
Software informatie:
Versie: 0.3.14
Upload datum: 14 Apr 15
Ontwikkelaar: Robert Collins
Licentie: Gratis
Populariteit: 75

Rating: 5.0/5 (Total Votes: 2)

Uitrusting is een hulpmiddel dat een Python contract definieert voor herbruikbare staat / support logica, in de eerste plaats voor de unit testing & nbsp;. Helper en aanpassing logica is opgenomen om het gemakkelijk maken om uw eigen armaturen met behulp van de armaturen contract te schrijven. Lijmcode wordt op voorwaarde dat maakt het gebruik van armaturen die de Uitrusting contract in unittest compatibel testcases ontmoeten eenvoudig en ongecompliceerd.
Waarom Wedstrijden
Standaard Python unittest.py geeft geen duidelijke methode voor het maken en opnieuw staat nodig anders dan door toevoeging van een methode op testklasse testgeval. Deze schalen slecht - complexe helper functies propogating up een test klasse hiërarchie is een regelmatig patroon wanneer dit wordt gedaan. Bespotten terwijl een groot hulpmiddel zelf niet deze voorkomen (en helpers complexe dingen kunnen ophopen op dezelfde wijze als spot die op de testklasse).
Door het definiëren van een uniform contract waar helpers hebben geen afhankelijkheid van de test klasse we toestaan ​​dat alle reguliere code hygiëne activiteiten plaatsvinden zonder de verstorende invloed van het zijn in een klasse hiërarchie, dat is het modelleren van een heel ander ding - dat is wat helpers op een testcase lijden aan.
Over Wedstrijden
Een vaste waarde vertegenwoordigt zo'n toestand. Elk toestel heeft attributen dat specifiek de armatuur zijn. Bijvoorbeeld, zou een vaste waarde vertegenwoordigt een map die kan worden gebruikt voor tijdelijke bestanden een attribuut 'pad' te hebben.
Het creëren Wedstrijden
Minimaal, subklasse armatuur, definiëren Setup om uw staat initialiseren en plannen een schoonmaakbeurt voor Wanneer het opruimen heet en je bent klaar:
>>> Import unittest
>>> Import armaturen
>>> Klasse NoddyFixture (fixtures.Fixture):
... Def setup (zelf):
... Super (NoddyFixture, zelf) .setUp ()
... Self.frobnozzle = 42
... Self.addCleanup (delattr, zelf, 'frobnozzle')
Dit zal frobnozzle initialiseren wanneer de setup is genoemd, en wanneer Cleanup wordt opgeroepen zich te ontdoen van de frobnozzle attribuut.
Er is een helper voor het aanpassen van een functie of functie pair in armaturen. het brengt het resultaat van de functie fn_result:
>>> Import os.path
>>> Import shutil
>>> Import tempfile
>>> Def setup_function ():
... Terug tempfile.mkdtemp ()
>>> Def teardown_function (armatuur):
... Shutil.rmtree (armatuur)
>>> Armatuur = fixtures.FunctionFixture (setup_function, teardown_function)
>>> Fixture.setUp ()
>>> Print os.path.isdir (fixture.fn_result)
Waar
>>> Fixture.cleanUp ()
Het armatuur API
Het bovenstaande voorbeeld worden enkele van de Fixture API. Om te kunnen ruimen na een inrichting is gebruikt, definieert alle armaturen een schoonmaakbeurt werkwijze die moet worden aangeroepen wanneer een armatuur is afgewerkt met.
Omdat het leuk om te kunnen om een ​​bepaalde set gerelateerde armaturen te bouwen op voorhand van het gebruik ervan, armaturen hebben ook definiëren een setup methode die moet worden aangeroepen voordat je probeert om ze te gebruiken.
Een gemeenschappelijke wens met armaturen die duur om te maken is om ze opnieuw te gebruiken in veel testcases zijn; om dit te ondersteunen de basis Inrichting definieert ook een reset die self.cleanUp noemt (); self.setUp (). Armaturen die efficiënter kunnen maken zich herbruikbaar moet deze methode overschrijven. Dit kan dan worden gebruikt met meerdere testen staat via dingen als testresources, setUpClass of setUpModule.
Bij gebruik van een armatuur met een test kunt u handmatig de installatie en Cleanup methoden noemen. Meer wel handig is om de meegeleverde lijm te gebruiken van fixtures.TestWithFixtures die een mixin definiëren useFixture biedt (kameel geval, omdat unittest is de hele kameel geval) methode. Het zal setup een beroep doen op het armatuur, bel self.addCleanup (armatuur) om een ​​schoonmaakbeurt te plannen, en de terugkeer van de armatuur. Dit laat een write:
>>> Import testtools
>>> Import unittest
Merk op dat we gebruiken testtools testcase hier als we nodig hebben om een ​​TestCase.addCleanup methode garanderen.
& Nbsp; >>> klasse NoddyTest (testtools.TestCase, fixtures.TestWithFixtures):
& Nbsp; ... def test_example (zelf):
& Nbsp; ... competitieprogramma = self.useFixture (NoddyFixture ())
& Nbsp; ... self.assertEqual (42, fixture.frobnozzle)
& Nbsp; >>> resultaat = unittest.TestResult ()
& Nbsp;. >>> _ = NoddyTest ('test_example') draaien (resultaat)
& Nbsp; >>> afdrukken result.wasSuccessful ()
& Nbsp; True
Armaturen uitvoering van het context-protocol, zodat je ook een vaste waarde kan gebruiken als een context-manager:
>>> Met fixtures.FunctionFixture (setup_function, teardown_function) als armatuur:
... Print os.path.isdir (fixture.fn_result)
True

Eisen

  • Python

Vergelijkbare software

BDD4Django
BDD4Django

20 Feb 15

lava-serial
lava-serial

15 Apr 15

lintswitch
lintswitch

15 Apr 15

Andere software van ontwikkelaar Robert Collins

Reacties op Fixtures

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