Fixtures

Screenshot Software:
Fixtures
Mga detalye ng Software:
Bersyon: 0.3.14
I-upload ang petsa: 14 Apr 15
Nag-develop: Robert Collins
Lisensya: Libre
Katanyagan: 17

Rating: 5.0/5 (Total Votes: 1)

Piyesa ay isang kasangkapan na tumutukoy sa isang Python kontrata para sa muling nagagamit na estado / support logic, lalo na para sa mga yunit ng pagsubok. & Nbsp; Helper at adaption logic ay kasama upang gawing madali upang isulat ang iyong sariling fixtures gamit ang kontrata fixtures. Madikit code ay ibinigay na ginagawang gamit fixtures na nakakatugon sa mga kontrata Piyesa sa unittest kaso tugma ang test madali at tuwid forward.
Bakit Piyesa
Standard Python unittest.py ay nagbibigay ng walang halata na pamamaraan para sa paggawa at reusing kinakailangan sa isang pagsubok na kaso maliban sa pamamagitan ng pagdaragdag ng isang pamamaraan sa pagsubok klase ng estado. Mga antas na ito mahina - complex helper function propogating up ng isang pagsubok na klase hierarchy ay isang regular na pattern kapag ito ay tapos na. Mapanukso habang ang isang mahusay na tool ay hindi mismo pigilan ito (at helpers upang aasarin kumplikadong mga bagay na maaari maipon sa parehong paraan kung ilagay sa pagsubok ng klase).
Sa pamamagitan ng pagtukoy sa isang pare-parehong kontrata kung saan helpers walang dependency sa test klase pinahihintulutan namin ang lahat ng mga regular na gawain sa kalinisan ng code upang maganap nang walang distorting impluwensiya ng pagiging sa isang klase hierarchy na pagmomodelo ng isang ganap na magkaibang mga bagay - na kung saan ay kung ano helpers sa isang TestCase magdusa mula sa.
Tungkol Piyesa
Isang Fixture kumakatawan sa ilan estado. Ang bawat kabit ay may mga katangian sa ito na partikular sa kabit. Halimbawa, ang isang kabit na kumakatawan sa isang direktoryo na maaaring magamit para sa pansamantalang mga file ay maaaring may katangiang 'path'.
Paglikha Piyesa
Nagnais, subclass Fixture, tukuyin ang pag-setup upang simulan ang iyong estado at mag-iskedyul ng paglilinis para kapag paglilinis ay tinatawag na at tapos ka na:
>>> Import unittest
>>> Import fixtures
>>> Klase NoddyFixture (fixtures.Fixture):
... Def set up (sa sarili):
... Sobrang (NoddyFixture, sa sarili) .setUp ()
... Self.frobnozzle = 42
... Self.addCleanup (delattr, sa sarili, 'frobnozzle')
Ito ay initialize frobnozzle kapag ang pag-setup ay tinatawag na, at kapag paglilinis ay tinatawag na mapupuksa ang frobnozzle katangian.
May helper para sa pag-angkop ng isang function o function na pares sa Piyesa. Inilalagay nito ang resulta ng pag-andar sa fn_result:
>>> Import os.path
>>> Import shutil
>>> Import tempfile
>>> Def setup_function ():
... Bumalik tempfile.mkdtemp ()
>>> Def teardown_function (kabit):
... Shutil.rmtree (kabit)
>>> Kabit = fixtures.FunctionFixture (setup_function, teardown_function)
>>> Fixture.setUp ()
>>>-Print os.path.isdir (fixture.fn_result)
Totoo
>>> Fixture.cleanUp ()
Ang Fixture API
Ang halimbawa sa itaas introduces ang ilan sa mga Fixture API. Upang magagawang upang linisin pagkatapos ng isang kabit ay ginamit, ang lahat ng mga fixtures tukuyin ang isang pamamaraan ng paglilinis kung saan ay dapat na tinatawag na kapag ang isang kabit ay tapos na.
Dahil maganda nito upang magagawang upang bumuo ng isang partikular na hanay ng mga kaugnay na fixtures bago ang paggamit sa mga ito, fixtures mayroon ding tukuyin ang isang pamamaraan sa pag-setup kung saan ay dapat na tinatawag na bago subukang gamitin ang mga ito.
Ang isang karaniwang pagnanais na may fixtures na mahal na lumikha ay upang muling gamitin ang mga ito sa maraming mga kaso pagsubok; upang suportahan ang mga ito ay tumutukoy din sa base Fixture isang pag-reset na tinatawag self.cleanUp (); self.setUp (). Fixtures na maaaring mas mahusay na gumawa ng kanilang sarili magagamit muli dapat i-override ang pamamaraang ito. Ito ay maaaring pagkatapos ay gamitin na may maramihang mga estado ng pagsubok sa pamamagitan ng mga bagay tulad ng testresources, setUpClass, o setUpModule.
Kapag gumagamit ng kabit na may isang pagsubok na maaari mong manu-manong tumawag sa setup at paglilinis ng mga pamamaraan. Mas maginhawa bagaman ay ang gamitin ang isinama kola mula fixtures.TestWithFixtures na nagbibigay ng isang mixin pagtukoy useFixture (kamelyo kaso dahil unittest ay kamelyo kaso sa buong) na pamamaraan. Ito ay tawagan ang pag-setup sa kabit, tawagan self.addCleanup (kabit) mag-iskedyul ng paglilinis, at ibalik ang kabit. Ito ay nagbibigay-daan sa isang pagpapawalang:
>>> Import testtools
>>> Import unittest
Tandaan na ginagamit namin testtools TestCase dito bilang kailangan namin upang magarantiya ang isang pamamaraan sa TestCase.addCleanup.
& Nbsp; >>> klase NoddyTest (testtools.TestCase, fixtures.TestWithFixtures):
& Nbsp; ... def test_example (sa sarili):
& Nbsp; ... kabit = self.useFixture (NoddyFixture ())
& Nbsp; ... self.assertEqual (42, fixture.frobnozzle)
& Nbsp; >>> resulta = unittest.TestResult ()
& Nbsp;. >>> _ = NoddyTest ('test_example') tumakbo (resulta)
& Nbsp; >>>-print result.wasSuccessful ()
& Nbsp; True
Ipatupad fixtures konteksto protocol, kaya maaari ka ring gumamit ng isang kabit bilang isang konteksto manager:
>>> May fixtures.FunctionFixture (setup_function, teardown_function) bilang kabit:
... Naka-print na os.path.isdir (fixture.fn_result)
True

Mga Kinakailangan :

  • Python

Katulad na software

lava-core
lava-core

14 Apr 15

nose-pynotify
nose-pynotify

11 May 15

STK/Unit
STK/Unit

20 Feb 15

qc
qc

14 Apr 15

Iba pang mga software developer ng Robert Collins

Mga komento sa Fixtures

Mga Komento hindi natagpuan
Magdagdag ng komento
I-sa mga imahe!