Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Introduktion til Testning i Python | Beherskelse af Pytest-Rammeværket
Python Strukturel Programmering

bookIntroduktion 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:

1234
def calculate_average(num1, num2): return (num1 + num2) / 2 print(calculate_average(3, 5))
copy

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!

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 4. Kapitel 1

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

bookIntroduktion 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:

1234
def calculate_average(num1, num2): return (num1 + num2) / 2 print(calculate_average(3, 5))
copy

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!

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 4. Kapitel 1
some-alt