Python Doctest

Python Doctest
"Vi vet at Pythons DocString gir flere detaljer om sine funksjoner og klasser. De legeste pakkene skriver programmet som begynner med >>> og kontrasterer resultatene med det som var forventet. Ved å utføre illustrasjoner som er inkludert i spesifikasjonen og bekrefte at de gir de ønskede resultatene, lar det legeste verktøyet deg evaluere skriptet ditt. Den trekker ut prøver fra referanseteksten, utfører dem og kontrasterer deretter resultatene med målverdien.

At det ikke har vært noen API å huske i den mest grunnleggende versjonen, gjør Doctest enklere for mange programmerere å bruke over Unittest. Å lage legestester kan være vanskeligere enn bare å konsumere uvitende selv om tilfeller blir mer komplisert siden det ikke er noen ressurshåndtering.”

Eksempel 01

La oss komme i gang med det første eksemplet på denne artikkelen nå. Vi har startet dette eksemplet med importen av "Doctest" -modulen på den første linjen. Etter dette har vi definert en ny funksjon, "testing" med pekeren "args" -parameteren som peker mot bruk av heltallverdier for testmetoden. Innenfor denne metoden har vi brukt trippel sitatene for å gi heltallverdiene til "testing" -metoden for å teste om summen av alle verdier som er bestilt er lik en viss verdi definert i den neste linjen.

Så vi har gitt de 5 verdiene til testmetoden og forventet resultatet av 49 som en sum. Deretter prøvde vi en annen test ved å sende tre tall til testfunksjonen og forvente at resultatet av 22, og i det siste ble det gitt 5 verdier for å forvente resultatet av 15. Summen () -funksjonen har tatt verdiene som ble gitt til testfunksjonen som et argument og returnerte summen av alle. TestMod () -funksjonen til den legeste modulen til Python har blitt brukt her for å vitne om at den beregnede verdien er den samme som forventet verdi. Hvis ikke, vil det kaste en feil på konsollen vår.

La oss lagre og utføre dette programmet i Spyder 3 -verktøyet for å se hva som skjer i testdelen. Dette eksemplets detaljerte kode sees på skjermbildet.

Etter utførelsen av denne Python -koden, har vi fått utdataene som vises nedenfor. Det viser at programmet har prøvd å teste de 5 verdiene og forvente 49 som en sum. Den returnerte verdien “OK” viser at testen er bestått og validert; Den returnerte summen er 49. Den neste testen ble brukt på tre verdier som ventet 22 som en sum, mens testen mislyktes fordi summen vi fikk var 21.

Etter bruken av den legeste testfunksjonen på de neste 5 verdiene, har vi bestått testen som forventet, og den returnerte sumverdien er 15. Til slutt har vi blitt rapportert med resultatet at totalt 2 tester er blitt sendt ut av 3. På skjermdumpen vises resultatet av dette eksemplet.

Eksempel 02

Vi har brukt et annet eksempel for å bruke Doctest -modulen i Python -koden vår for å vitne om en annen matematisk tilstand. Så vi har startet dette eksemplet med importen av TestMod -funksjonen til den legeste pakken i Python. Funksjonen "fakta" har blitt definert ved å ta en variabel verdi "v" som et argument. Trippel sitatene etterfulgt av >>> -tegnet bruker fakta () -funksjonen for å finne ut faktorialen til en “4” og “2” på to forskjellige linjer. Mens det forventede resultatet ville være 24 og 3 i dette tilfellet.

"IF" -tilstanden har blitt brukt for å sjekke om verdien av "V" -variabelen overføres til faktasfunksjonen er lik eller mindre enn 1 og returnerer 1; Ellers vil faktorialen av en verdi “V” bli beregnet av formlene “V*Fact (V-1)”.

Hoved () -funksjonen er her for å bruke TesMod () -funksjonen ved å bruke "fakta" -funksjonen i den. Det ville være å teste at faktorialen av både verdiene “4” og “2” sendte til faktumfunksjonene () ville være 24 og 3 eller ikke. Dette programmet er lagret og er klart til bruk nå. Dette eksemplets detaljerte kode sees på skjermbildet.

Etter å ha kjørt den, har vi fått vite at faktorialen av 4 returnert av funksjonen er 24, noe som er lik det forventede resultatet, i.e. testen er bestått i denne saken, jeg.e. 24. For den andre verdien har testen mislyktes ettersom den forventede faktorialen av 2 er 3 mens det faktiske resultatet må være 2. Så rapporten har vist at en test er bestått mens jeg mislyktes. På skjermdumpen vises resultatet av dette eksemplet.

Eksempel 03

Innenfor dette eksemplet har vi importert TestMod -funksjonen fra dens legemodul og bruk av Check () -funksjonen for å sjekke at multiplikasjonsresultatet av to verdier er som forventet eller ikke. I den første funksjonssamtalen har vi passert 5 og 3 og forventet 15 som et multiplikasjonsresultat, mens vi i den andre funksjonssamtalen har passert karakter m og heltall 3 mens vi forventet "mmm" som multiplikasjonsresultatet.

"M*r" multiplikasjonsresultatet vil bli returnert til den anropende main () -funksjonen. Main () -funksjonen er bare å kalle TestMod -funksjonen for å utføre 2 tester. Dette programmet er nå fullført og klar til å bli utført. Dette eksemplets detaljerte kode sees på skjermbildet.

Ved utførelse har vi de samme verdiene for begge multiplikasjonsresultatene som det forventede resultatet, i.e. 15 og “MMM”. I dette tilfellet har ingen testsak blitt mislyktes, jeg.e. Begge testene blir bestått.

Konklusjon

Dette er det og alt om bruken av den legeste pakken med Python i kodene våre for å teste programmer. For dette har vi prøvd tre forskjellige eksempler for å sammenligne den resulterende verdien med den forventede verdien av funksjonene ved å ta noen argumenter. Alle tre eksemplene er enkle og enkle å gjøre på Spyder 3 -verktøyet, og du kan enkelt lære legestet ved å øve på dem.