Introduktion til Testning i Python
I vores Fejlhåndtering-sektion undersøgte vi, hvordan man håndterer både syntaksfejl og kørselsfejl, men vi gik ikke i dybden med håndtering af logiske fejl. I denne sektion vil vi undersøge to typer test, der er essentielle for at validere logikken i vores applikationer: manuel og automatiseret test.
Test opdeles generelt i disse to kategorier. Manuel test involverer, at menneskelige testere udfører tests ved at interagere med applikationen og verificerer korrektheden af dens funktioner i henhold til kravene. Denne type test er nyttig, men kan være tidskrævende og udsat for menneskelige fejl.
Automatiseret test anvender derimod scripts og værktøjer til automatisk at udføre tests uden direkte menneskelig indgriben, hvilket sikrer, at applikationen opfører sig som forventet. Dette fremskynder ikke kun testprocessen, men øger også dens nøjagtighed og konsistens.
Introduktion til Test-Driven Development (TDD)
En central metode inden for automatiseret test er Test-Driven Development (TDD). TDD er en innovativ udviklingsproces, hvor tests skrives før den egentlige kode. Processen følger en simpel cyklus: skriv en test, kør testen (som i starten bør fejle), skriv den minimale mængde kode for at få testen til at bestå, og refaktorer derefter koden for at opnå renhed og effektivitet.
Oversigt over Unittest og Pytest Frameworks
Python tilbyder flere frameworks til at skrive og udføre tests, hvor Unittest og Pytest er to af de mest populære.
Unittest
Unittest er Pythons indbyggede testframework. Unittest er klassebaseret og kræver, at du organiserer dine tests i klasser som underklasser af unittest.TestCase.
Pytest
Pytest er et kraftfuldt tredjeparts testframework, der understøtter enklere testcases til både simple og komplekse testsituationer. I modsætning til Unittest tillader Pytest, at du skriver testfunktioner uden at skulle indkapsle dem i klasser.
Test af en gennemsnitsberegningsfunktion
Lad os overveje en simpel funktion, der beregner gennemsnittet af to tal, og se, hvordan den kan testes ved hjælp af både Unittest og Pytest.
Function to be Tested:
1234def calculate_average(num1, num2): return (num1 + num2) / 2 print(calculate_average(3, 5))
Test med Unittest
import unittest
class TestAverageCalculation(unittest.TestCase):
def test_average(self):
result = calculate_average(10, 20)
self.assertEqual(result, 15)
Test med pytest
import pytest
def test_average():
assert calculate_average(10, 20) == 15
Selvom Unittest er fremragende for udviklere, der er fortrolige med xUnit-formatet og foretrækker en struktureret, objektorienteret tilgang til test, er Pytest velegnet til dem, der søger mere fleksibilitet og enkelhed samt kraftfulde funktioner til komplekse tests, som ikke håndteres lige så let af Unittest.
Vi ses i næste kapitel!
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Fantastisk!
Completion rate forbedret til 3.13
Introduktion til Testning i Python
Stryg for at vise menuen
I vores Fejlhåndtering-sektion undersøgte vi, hvordan man håndterer både syntaksfejl og kørselsfejl, men vi gik ikke i dybden med håndtering af logiske fejl. I denne sektion vil vi undersøge to typer test, der er essentielle for at validere logikken i vores applikationer: manuel og automatiseret test.
Test opdeles generelt i disse to kategorier. Manuel test involverer, at menneskelige testere udfører tests ved at interagere med applikationen og verificerer korrektheden af dens funktioner i henhold til kravene. Denne type test er nyttig, men kan være tidskrævende og udsat for menneskelige fejl.
Automatiseret test anvender derimod scripts og værktøjer til automatisk at udføre tests uden direkte menneskelig indgriben, hvilket sikrer, at applikationen opfører sig som forventet. Dette fremskynder ikke kun testprocessen, men øger også dens nøjagtighed og konsistens.
Introduktion til Test-Driven Development (TDD)
En central metode inden for automatiseret test er Test-Driven Development (TDD). TDD er en innovativ udviklingsproces, hvor tests skrives før den egentlige kode. Processen følger en simpel cyklus: skriv en test, kør testen (som i starten bør fejle), skriv den minimale mængde kode for at få testen til at bestå, og refaktorer derefter koden for at opnå renhed og effektivitet.
Oversigt over Unittest og Pytest Frameworks
Python tilbyder flere frameworks til at skrive og udføre tests, hvor Unittest og Pytest er to af de mest populære.
Unittest
Unittest er Pythons indbyggede testframework. Unittest er klassebaseret og kræver, at du organiserer dine tests i klasser som underklasser af unittest.TestCase.
Pytest
Pytest er et kraftfuldt tredjeparts testframework, der understøtter enklere testcases til både simple og komplekse testsituationer. I modsætning til Unittest tillader Pytest, at du skriver testfunktioner uden at skulle indkapsle dem i klasser.
Test af en gennemsnitsberegningsfunktion
Lad os overveje en simpel funktion, der beregner gennemsnittet af to tal, og se, hvordan den kan testes ved hjælp af både Unittest og Pytest.
Function to be Tested:
1234def calculate_average(num1, num2): return (num1 + num2) / 2 print(calculate_average(3, 5))
Test med Unittest
import unittest
class TestAverageCalculation(unittest.TestCase):
def test_average(self):
result = calculate_average(10, 20)
self.assertEqual(result, 15)
Test med pytest
import pytest
def test_average():
assert calculate_average(10, 20) == 15
Selvom Unittest er fremragende for udviklere, der er fortrolige med xUnit-formatet og foretrækker en struktureret, objektorienteret tilgang til test, er Pytest velegnet til dem, der søger mere fleksibilitet og enkelhed samt kraftfulde funktioner til komplekse tests, som ikke håndteres lige så let af Unittest.
Vi ses i næste kapitel!
Tak for dine kommentarer!