qc

Programinė įranga Screenshot:
qc
Programinė detalės:
Versija: 0.1
Įkėlimo datą: 14 Apr 15
Kūrėjas: Peter Scott
Licencija: Nemokamai
Populiarumas: 23

Rating: 4.0/5 (Total Votes: 2)

QC yra testavimo įrankis, kuris leidžia jums rašyti savybių, kurios tikitės pasitvirtins, ir tegul kompiuterių generuoti atsitiktinius testinius atvejus patikrinti, ar šios savybės iš tikrųjų turėti & nbsp;. Pavyzdžiui, jei turite raštišką kompresą ir išskleisti funkcijas kai duomenų suspaudimo programa, akivaizdu savybė yra ta, kad bandymo suspaudžiant ir dekompresowania eilutę suteikia atgal originalų eilutę. Štai kaip galite išreikšti, kad:
importo unittest
importo QC
klasė TestCompression (unittest.TestCase):
& Nbsp; @ qc.property
& Nbsp; def test_compress_decompress (si):
& Nbsp; "" ". Bandymo kad suspaudžiant ir dekompresowania grąžina pradinius duomenis" ""
& Nbsp; duomenys = qc.str () # savavališkai eilutė. Vertybės atsitiktinai.
& Nbsp; self.assertEqual (duomenys, išskleisti (suspausti (duomenys)), Repr (duomenys))
Štai paprastas testas su Python'o built-in unittest sistemą (kuri yra, kodėl yra tiek daug Standartiniai). Pakaitomis, galite padaryti tą patį dalyką su kitu testavimo sistemą, kaip minimaliai išplėstinę, gana malonus nosies. @ Qc.property dekoratorius veikia puošia Function keletą kartų, ir kiekvieną kartą, kai vertės grąžinti funkcijas kaip qc.string () yra skirtingi. Kitaip tariant, QuickCheck yra suderinama su beveik visais vieneto bandymo sistemą ten; tai ne itin reiklus.
Veikia kaip qc.str (), qc.int (), ir tt, generuoti savavališkų vertybes tam tikros rūšies. Aukščiau pateiktame pavyzdyje, mes teigdamas, kad nuosavybės pasakytina visų eilučių. Paleidus bandymus, QuickCheck sukurs atsitiktinius stygos testavimo.
Jūs pastebėsite, kad pasakiau "atsitiktinių", o ne "atsitiktinai". Tai tyčinis. Vertybių pasiskirstymas nežymiai įtraukti įdomių vertybes, kaip tuščių eilučių ar eilutes su nul simbolių centru, ar eilutes, kuriuose tekstą anglų kalba. Apskritai, QuickCheck bando duoti gerą mišinį protingas sudėtinga vertybių ir atsitiktinumo. Tai iš esmės tai, ką jūs darytumėte, jei jums teko rašyti tikrai kruopščiai testinius atvejus ranka, išskyrus tai, kad jūs neturite daryti. Praktiškai kompiuteris turi mažiau išankstinių apie tai, kas yra sveikas duomenis, todėl ji dažnai rasti klaidas, kad niekada nebūtų įvykęs jums parašyti bandymas bylas. Jis nežino, kaip nesąmoningai išvengti klaidų.
Jūs neprisijungęs apsiriboja įmontuotais savavališkai vertės funkcijų. Jūs galite naudoti juos kaip blokai sukurti savo. Pavyzdžiui:
klasė punktas (objektas):
& Nbsp; def __init __ (self x, y):
& Nbsp; self.x, self.y = float (x), plūdė (y)
Def taškas ():
& Nbsp; "" Get savavališkai taškas "."
& Nbsp; x = qc.int (-20, 20)
& Nbsp; y = qc.int (-34, 50)
& Nbsp; sugrįžti punktas (x, y)
Tada galite naudoti šią generuoti savavališkai taškas vertybių savybes. Štai nosies stiliaus testas:
@ Qc.property
Def test_triangle_inequality ():
& Nbsp; pt = taškas ()
& Nbsp; teigia, ABS (pt.x) + abs (pt.y)> = math.sqrt (pt.x ** 2 + pt.y ** 2), (pt.x, pt.y)
Paleidus to, kažkas stebuklingo vyksta: QuickCheck bandys kurti sudėtinga vertes ir x ir y kintamųjų Point klasės kartu, todėl jūs pamatysite taškų, pavyzdžiui, (0, 0), (1, 1), ( 0, 1), (385904, 0), o taip pat visiškai atsitiktiniai, kaip tie (584, -35809648). Kitaip tariant, o ne tik traukiant X ir Y vertėms iš atsitiktinių skaičių su kai sudėtingų verčių jį sraute, QuickCheck bus iš tikrųjų bando generuoti sudėtinga derinius x ir y koordinatėmis.
Funkcijos norint gauti savavališkų duomenis
- INT (žemas, aukštas) suteikia int, tarp pasirenkamų ribų žemoms ir aukštoms.
- Ilgas (žemas, aukštas) suteikia long, tarp pasirenkamų ribų žemoms ir aukštoms.
- Plūdė (žemas, aukštas) suteikia plūdės, tarp pasirenkamų ribų žemoms ir aukštoms. Nėra begalybių ar Nan vertės.
& Nbsp; g (ilgis = Nėra, maxlen = Nėra) suteikia stygos, tipo g. Kodavimas UTF-8. Jei ilgis yra nurodytas, stygos bus tiksliai, kad ilgai. Jei maxlen yra nurodytas, eilutės ilgis bus ne daugiau maxlen simbolių.
- Unicode (ilgis = Nėra, maxlen = Nėra) suteikia unicode eilutes, tipo unicode. Jei ilgis yra nurodytas, stygos bus tiksliai, kad ilgai. Jei maxlen yra nurodytas, eilutės ilgis bus ne daugiau maxlen simbolių.
- Vardas () suteikia pavardėmis Unicode. Šie nuo nuobodus, kaip "John Smith", į egzotiškus - vardus, turinčius ne-iųjų erdves, ar elektroninio pašto adresus, arba Unicode simbolių lauko Pagrindinio Daugiakalbė plokštumoje. Tai yra, jei kas nors, mažiau ydingas nei pavadinimų pamatysite pakankamai didelį rinkinį interneto duomenų.
- NameUtf8 () yra toks pat, kaip pavadinimo () koduoti ('utf8 ")..
- FromList (vnt) grįžta atsitiktinius elementus iš sąrašo. Tai daugiausia naudinga kurti savo savavališkai duomenys generatorius funkcijas.
- Randstr (ilgis = Nėra, maxlen = sys.maxint) suteikia stygos atsitiktinių baitų. Jei ilgis yra nurodytas, stygos bus tiksliai, kad ilgai. Jei maxlen yra nurodytas, eilutės ilgis bus ne daugiau maxlen baitai.
Pagamintas STR ir Unicode stygos atsitiktinai, tačiau kai pastangos buvo pradėtas todėl jiems pakankamai ydingas, kaip atskleisti klaidas visai daug styginių apdorojimo kodą. Vardas sąrašas yra laisvai grindžiamas siaubingas prisiminimų matome vardas apdorojimo kodą katastrofos realaus pasaulio duomenimis, ir vėl ir vėl, nes jis tapo vis labiau aišku, kad pasaulis yra proto, ir mes tikrai pasmerktas. (Šis jausmas praeina, kai jūs gaunate pakankamai bandymų apimtis ir daiktus pagaliau sustabdyti kritimo. Yra vilties!)
Pavadinimas ir styginių pavyzdys duomenys qc.arbitrary gali būti įdomu, kaip daugiau deteministic bandymo atveju duomenų šaltinį. Jauskitės laisvai skolintis bet jį. Į vidinės yra magija, bet stebuklinga vidinių dalių, įdomiausių yra qc.arbitrary ir qc

Reikalavimai :.

  • Python

Panaši programinė įranga

Komentarai qc

Komentarai nerastas
Pridėti komentarą
Pasukite ant paveikslėlio!