.
Təqvim əvvəlcə vahid test & nbsp, reusable dövlət / support məntiq üçün Python müqavilə müəyyən bir vasitədir; Helper və uyğunlaşması məntiq asan qurğular müqavilə istifadə edərək, öz qurğular yazmaq üçün daxil edilir. Yapışqan kodu asan və düz irəli unittest uyğun test hallarda Təqvim müqavilə cavab qurğular istifadə edir ki, təmin edilir.
Niyə Təqvim
Standard Python unittest.py edilməsi və test sinif bir üsul əlavə başqa bir test halda lazım olan dövlət yeniden üçün heç bir aşkar üsulu təmin edir. Bu zəif tərəzi - Bunu zaman test sinif iyerarxiyasını qədər propogating kompleks köməkçi funksiyaları müntəzəm nümunəsidir. Böyük bir vasitədir özü (test sinif yerləşdirilmiş eyni şəkildə toplamaq bilər kompleks şeylər istehza və köməkçiləri) bu qarşısını almaq deyil isə rişxəndli.
Bir testcase üzrə köməkçiləri nə - köməkçiləri biz bütün daimi kodu gigiyena fəaliyyəti Sayt kateqoriyaları tamamilə fərqli bir şey modelləşdirilməsi bir sinif iyerarxiyasını olan təhrif təsiri olmadan keçiriləcək icazə test sinif heç bir asılılığı yoxdur vahid müqavilə ilə müəyyən əziyyət çəkir.
haqqında Təqvim
A Aplik bir dövlətini təmsil edir. Hər armatur qurğular xüsusi onu atributları var. Məsələn, müvəqqəti faylları üçün istifadə edilə bilər bir kataloq edən bir fikstür bir atributu 'yol' ola bilər.
yaradılması Təqvim
Təmizləmə adlanır və Bitirdiğinizde Minimal, yarımsinif Aplik, sizin dövlət başlamaq üçün bir təmizləmə cədvəli quraşdırma müəyyən edir:
>>> Idxal unittest
>>> Idxal qurğular
>>> Sinif NoddyFixture (fixtures.Fixture):
... Def Setup (özünü):
... Super (NoddyFixture, özünü) .setUp ()
... Self.frobnozzle = 42
... Self.addCleanup (delattr, özünü 'frobnozzle)
Bu quraşdırma adlanır zaman frobnozzle başlamaq, və təmizləmə frobnozzle atributu xilas adlanır zaman.
Qurğular bir funksiyası və ya funksiyası cüt uyğunlaşdırılması üçün bir köməkçi yoxdur. Bu fn_result fəaliyyət nəticəsində qoyur:
>>> Idxal os.path
>>> Idxal shutil
>>> Idxal tempfile
>>> Def setup_function ():
...) (Tempfile.mkdtemp qayıtmaq
>>> Def teardown_function (armatur):
... Shutil.rmtree (armatur)
>>> Qurğular = fixtures.FunctionFixture (setup_function, teardown_function)
>>> Fixture.setUp ()
>>> Çap os.path.isdir (fixture.fn_result)
Doğru
>>> Fixture.cleanUp ()
Aplik API
Yuxarıdakı misal Aplik API bəzi təqdim edir. Bir fikstür istifadə edilmişdir sonra təmizləmək imkanına malik olmaq üçün, bütün qurğular bir fikstür ilə başa zaman adlandırmaq lazımdır ki, bir təmizləmə metodu müəyyən edir.
Onun gözəl onlardan istifadə əvvəlcədən müvafiq qurğular xüsusi bir set qurmaq edə Çünki, qurğular, həmçinin istifadə etmək üçün çalışır əvvəl adlandırmaq lazımdır bir quraşdırma metodu müəyyən var.
Çox test hallarda onları təkrar edir yaratmaq üçün bahalı qurğular ilə bir ortaq arzusu; ) (bu baza Aplik də self.cleanUp çağırır yenidən müəyyən dəstəkləmək; self.setUp (). Daha səmərəli özləri reusable bu metodu yalnış lazımdır edə bilərsiniz qurğular. Bu sonra testresources, setUpClass, və ya setUpModule kimi şeylər vasitəsilə bir çox test dövlət istifadə edilə bilər.
Bir test ilə bir fikstür istifadə edərkən özünüz quraşdırma və təmizləmə üsulları zəng edə bilərsiniz. Daha rahat olsa üsulu (unittest ərzində dəvə halda, çünki dəvə halda) useFixture müəyyən bir mixin təmin fixtures.TestWithFixtures daxil yapışqan istifadə etməkdir. Bu qurğular quraşdırma zəng təmizləmə cədvəli self.addCleanup (armatur) zəng və armatur qayıdacaqlar. Bu yazmaq imkan verir:
>>> Idxal testtools
>>> Idxal unittest
Bir TestCase.addCleanup metodu təmin etmək lazımdır kimi biz testtools istifadə Qeyd burada testcase.
& Nbsp; >>> sinif NoddyTest (testtools.TestCase, fixtures.TestWithFixtures):
& Nbsp; ... def test_example (özünü):
& Nbsp; ... qurğular = self.useFixture (NoddyFixture ())
& Nbsp; ... self.assertEqual (42, fixture.frobnozzle)
& Nbsp; >>> nəticə = unittest.TestResult ()
& Nbsp;. >>> _ = NoddyTest (test_example) (nəticə) run
& Nbsp; >>>) (result.wasSuccessful çap
& Nbsp; True
Siz də kontekstində meneceri kimi bir fikstür istifadə edə bilərsiniz qurğular, kontekstində protokol həyata keçirirlər:
>>> Armatur kimi fixtures.FunctionFixture (setup_function, teardown_function) ilə:
... Çap os.path.isdir (fixture.fn_result)
True
tələblər
- Python
Şərhlər tapılmadı