Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Introduction to Testing in Python | Testing with unittest and pytest
Python Strukturel Programmering

Introduction to Testing in Python

Stryg for at vise menuen

Testning er en grundlæggende praksis inden for softwareudvikling, der sikrer, at din kode opfører sig som forventet og forbliver pålidelig, efterhånden som den udvikler sig. Automatiseret testning gør det muligt at kontrollere din kode automatisk i stedet for at stole på manuelle kontroller, som er tidskrævende og fejlbehæftede. Ved at skrive tests kan du hurtigt opdage, når ændringer ødelægger eksisterende funktionalitet, og du kan trygt refaktorere eller udvide din kode.

En af de mest populære tilgange til testning er test-drevet udvikling (TDD). I TDD starter du med at skrive en test, der beskriver en ønsket adfærd eller funktion, før du skriver koden til at implementere den. Denne proces opfordrer dig til at tænke grundigt over krav og grænsetilfælde på forhånd, hvilket fører til renere og mere vedligeholdelig kode. Efter at have skrevet testen implementerer du den minimale kode, der kræves for at testen består, og derefter refaktorerer du koden for klarhed eller effektivitet, mens du kører testene igen for at sikre, at intet går i stykker. Denne cyklus – skriv en test, skriv koden, refaktorer – hjælper dig med at opbygge robust software trin for trin.

Testning handler ikke kun om at finde fejl. Det fungerer også som levende dokumentation for din kode, hvilket gør det lettere for andre (og dig selv i fremtiden) at forstå, hvordan din kode skal fungere. Automatiserede tests er især værdifulde, når man samarbejder i teams eller arbejder på store projekter, da de giver et sikkerhedsnet, der opmuntrer til eksperimentering og trygge kodeændringer.

12345
# A function to add two numbers def add(a, b): return a + b print(add(2, 3))
# A basic test case for the add function using unittest
import unittest

class TestAddFunction(unittest.TestCase):
    def test_add_positive_numbers(self):
        self.assertEqual(add(2, 3), 5)

    def test_add_zero(self):
        self.assertEqual(add(0, 5), 5)

    def test_add_negative_numbers(self):
        self.assertEqual(add(-1, -1), -2)

Den medfølgende kode definerer en testklasse ved navn TestAddFunction ved hjælp af Pythons indbyggede unittest-framework. Inde i denne klasse findes tre testmetoder:

  • test_add_positive_numbers kontrollerer, at kaldet add(2, 3) returnerer 5;
  • test_add_zero verificerer, at addition af nul og fem med add(0, 5) returnerer 5;
  • test_add_negative_numbers bekræfter, at addition af to negative tal, add(-1, -1), returnerer -2.

Hver testmetode anvender self.assertEqual til at sammenligne det faktiske resultat fra funktionen add med den forventede værdi. Hvis en test fejler, vil frameworket rapportere det, hvilket hjælper med at opdage fejl tidligt.

question mark

Hvilket af følgende er en vigtig fordel ved automatiseret testning i Python-udvikling?

Vælg det korrekte svar

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 5. 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

Sektion 5. Kapitel 1
some-alt