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

Introduksjon til testing i Python

Sveip for å vise menyen

Testing er en grunnleggende praksis innen programvareutvikling, som sikrer at koden din oppfører seg som forventet og forblir pålitelig etter hvert som den utvikles. Automatisert testing gjør det mulig å kontrollere koden automatisk, i stedet for å stole på manuelle kontroller som er tidkrevende og utsatt for feil. Ved å skrive tester kan du raskt oppdage når endringer ødelegger eksisterende funksjonalitet, og trygt refaktorere eller utvide koden din.

En av de mest populære tilnærmingene til testing er testdrevet utvikling (TDD). I TDD begynner du med å skrive en test som beskriver ønsket oppførsel eller funksjon før du skriver koden som skal implementere den. Denne prosessen oppmuntrer deg til å tenke nøye gjennom krav og hjørnetilfeller på forhånd, noe som fører til renere og mer vedlikeholdbar kode. Etter å ha skrevet testen, implementerer du den minimale koden som kreves for å bestå testen, og deretter refaktorerer du koden for klarhet eller effektivitet, og kjører testene igjen for å sikre at ingenting går i stykker. Denne syklusen – skrive en test, skrive koden, refaktorere – hjelper deg å bygge robust programvare trinnvis.

Testing handler ikke bare om å finne feil. Det fungerer også som levende dokumentasjon for koden din, noe som gjør det enklere for andre (og deg selv i fremtiden) å forstå hvordan koden skal fungere. Automatiserte tester er spesielt verdifulle når man samarbeider i team eller arbeider på store prosjekter, da de gir et sikkerhetsnett som oppmuntrer til eksperimentering og trygge kodeendringer.

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 oppgitte koden definerer en testklasse kalt TestAddFunction ved bruk av Pythons innebygde unittest-rammeverk. Inne i denne klassen finner du tre testmetoder:

  • test_add_positive_numbers sjekker at kall på add(2, 3) returnerer 5;
  • test_add_zero verifiserer at å legge sammen null og fem med add(0, 5) returnerer 5;
  • test_add_negative_numbers bekrefter at å legge sammen to negative tall, add(-1, -1), returnerer -2.

Hver testmetode bruker self.assertEqual for å sammenligne det faktiske resultatet fra add-funksjonen med forventet verdi. Hvis noen tester feiler, vil rammeverket rapportere det, noe som hjelper deg å oppdage feil tidlig.

question mark

Hva er en sentral fordel med automatisert testing i Python-utvikling?

Velg det helt riktige svaret

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 5. Kapittel 1

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Seksjon 5. Kapittel 1
some-alt