Introduksjon til Testing i Python
I vår Feilhåndtering-seksjon utforsket vi hvordan man håndterer både syntaksfeil og kjøretidsfeil, men vi gikk ikke nærmere inn på håndtering av logiske feil. I denne seksjonen skal vi se på to typer testing som er avgjørende for å validere logikken i applikasjonene våre: manuell og automatisert testing.
Testing deles grovt inn i disse to kategoriene. Manuell testing innebærer at menneskelige testere utfører tester ved å samhandle med applikasjonen og verifisere at funksjonene fungerer i henhold til kravene. Denne typen testing er nyttig, men kan være tidkrevende og utsatt for menneskelige feil.
Automatisert testing bruker derimot skript og verktøy for å utføre tester automatisk, uten direkte menneskelig innblanding, og sikrer at applikasjonen oppfører seg som forventet. Dette gjør ikke bare testprosessen raskere, men øker også nøyaktigheten og konsistensen.
Introduksjon til Testdrevet Utvikling (TDD)
En sentral metodikk innen automatisert testing er Testdrevet Utvikling (TDD). TDD er en innovativ utviklingsprosess hvor tester skrives før selve koden. Prosessen følger en enkel syklus: skriv en test, kjør testen (som i utgangspunktet skal feile), skriv minimumskoden som trengs for å bestå testen, og refaktorer deretter koden for å oppfylle kravene til ryddighet og effektivitet.
Oversikt over Unittest og Pytest-rammeverk
Python tilbyr flere rammeverk for å skrive og kjøre tester, hvor Unittest og Pytest er to av de mest populære.
Unittest
Unittest er Pythons innebygde testrammeverk. Unittest er klassebasert og krever at du organiserer testene dine i klasser som underklasser av unittest.TestCase.
Pytest
Pytest er et kraftig tredjeparts testrammeverk som støtter enklere testtilfeller for både enkle og komplekse testsituasjoner. I motsetning til Unittest lar Pytest deg skrive testfunksjoner uten å måtte pakke dem inn i klasser.
Testing av en funksjon for gjennomsnittsberegning
La oss se på en enkel funksjon som beregner gjennomsnittet av to tall, og hvordan den kan testes ved hjelp av både Unittest og Pytest.
Function to be Tested:
1234def calculate_average(num1, num2): return (num1 + num2) / 2 print(calculate_average(3, 5))
Testing med Unittest
import unittest
class TestAverageCalculation(unittest.TestCase):
def test_average(self):
result = calculate_average(10, 20)
self.assertEqual(result, 15)
Testing med pytest
import pytest
def test_average():
assert calculate_average(10, 20) == 15
Selv om Unittest er utmerket for utviklere som er kjent med xUnit-formatet og foretrekker en strukturert, objektorientert tilnærming til testing, passer Pytest for de som ønsker mer fleksibilitet og enkelhet, samt kraftige funksjoner for komplekse tester som ikke like lett håndteres av Unittest.
Vi sees i neste kapittel!
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
Can you explain more about logical errors and how to detect them?
What are the main differences between manual and automated testing?
Could you provide more examples of using Unittest and Pytest?
Fantastisk!
Completion rate forbedret til 3.13
Introduksjon til Testing i Python
Sveip for å vise menyen
I vår Feilhåndtering-seksjon utforsket vi hvordan man håndterer både syntaksfeil og kjøretidsfeil, men vi gikk ikke nærmere inn på håndtering av logiske feil. I denne seksjonen skal vi se på to typer testing som er avgjørende for å validere logikken i applikasjonene våre: manuell og automatisert testing.
Testing deles grovt inn i disse to kategoriene. Manuell testing innebærer at menneskelige testere utfører tester ved å samhandle med applikasjonen og verifisere at funksjonene fungerer i henhold til kravene. Denne typen testing er nyttig, men kan være tidkrevende og utsatt for menneskelige feil.
Automatisert testing bruker derimot skript og verktøy for å utføre tester automatisk, uten direkte menneskelig innblanding, og sikrer at applikasjonen oppfører seg som forventet. Dette gjør ikke bare testprosessen raskere, men øker også nøyaktigheten og konsistensen.
Introduksjon til Testdrevet Utvikling (TDD)
En sentral metodikk innen automatisert testing er Testdrevet Utvikling (TDD). TDD er en innovativ utviklingsprosess hvor tester skrives før selve koden. Prosessen følger en enkel syklus: skriv en test, kjør testen (som i utgangspunktet skal feile), skriv minimumskoden som trengs for å bestå testen, og refaktorer deretter koden for å oppfylle kravene til ryddighet og effektivitet.
Oversikt over Unittest og Pytest-rammeverk
Python tilbyr flere rammeverk for å skrive og kjøre tester, hvor Unittest og Pytest er to av de mest populære.
Unittest
Unittest er Pythons innebygde testrammeverk. Unittest er klassebasert og krever at du organiserer testene dine i klasser som underklasser av unittest.TestCase.
Pytest
Pytest er et kraftig tredjeparts testrammeverk som støtter enklere testtilfeller for både enkle og komplekse testsituasjoner. I motsetning til Unittest lar Pytest deg skrive testfunksjoner uten å måtte pakke dem inn i klasser.
Testing av en funksjon for gjennomsnittsberegning
La oss se på en enkel funksjon som beregner gjennomsnittet av to tall, og hvordan den kan testes ved hjelp av både Unittest og Pytest.
Function to be Tested:
1234def calculate_average(num1, num2): return (num1 + num2) / 2 print(calculate_average(3, 5))
Testing med Unittest
import unittest
class TestAverageCalculation(unittest.TestCase):
def test_average(self):
result = calculate_average(10, 20)
self.assertEqual(result, 15)
Testing med pytest
import pytest
def test_average():
assert calculate_average(10, 20) == 15
Selv om Unittest er utmerket for utviklere som er kjent med xUnit-formatet og foretrekker en strukturert, objektorientert tilnærming til testing, passer Pytest for de som ønsker mer fleksibilitet og enkelhet, samt kraftige funksjoner for komplekse tester som ikke like lett håndteres av Unittest.
Vi sees i neste kapittel!
Takk for tilbakemeldingene dine!