Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Introduktion till testning i Python | Testing with unittest and pytest
Python Strukturell Programmering

Introduktion till testning i Python

Svep för att visa menyn

Testning är en grundläggande praxis inom mjukvaruutveckling som säkerställer att koden beter sig som förväntat och förblir tillförlitlig när den utvecklas vidare. Automatiserad testning gör det möjligt att kontrollera koden automatiskt, istället för att förlita sig på manuella kontroller som är tidskrävande och benägna för fel. Genom att skriva tester kan du snabbt upptäcka när ändringar bryter befintlig funktionalitet och tryggt refaktorera eller utöka din kod.

Ett av de mest populära tillvägagångssätten för testning är testdriven utveckling (TDD). I TDD börjar du med att skriva ett test som beskriver ett önskat beteende eller funktion innan du skriver koden som implementerar det. Denna process uppmuntrar till noggrant tänkande kring krav och specialfall i förväg, vilket leder till renare och mer underhållbar kod. Efter att ha skrivit testet implementerar du den minsta kod som krävs för att testet ska passera, och därefter refaktorerar du koden för tydlighet eller effektivitet, samtidigt som du kör testerna igen för att säkerställa att inget går sönder. Denna cykel – skriva ett test, skriva koden, refaktorera – hjälper till att bygga robust mjukvara stegvis.

Testning handlar inte bara om att hitta buggar. Det fungerar också som levande dokumentation för din kod, vilket gör det enklare för andra (och dig själv i framtiden) att förstå hur koden är tänkt att fungera. Automatiserade tester är särskilt värdefulla vid samarbete i team eller arbete med stora projekt, eftersom de utgör ett skyddsnät som uppmuntrar till experimenterande och trygga kodändringar.

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 tillhandahållna koden definierar en testfallsklass med namnet TestAddFunction med hjälp av Pythons inbyggda unittest-ramverk. Inuti denna klass finns tre testmetoder:

  • test_add_positive_numbers kontrollerar att anropet add(2, 3) returnerar 5;
  • test_add_zero verifierar att addition av noll och fem med add(0, 5) returnerar 5;
  • test_add_negative_numbers bekräftar att addition av två negativa tal, add(-1, -1), returnerar -2.

Varje testmetod använder self.assertEqual för att jämföra det faktiska resultatet från funktionen add med det förväntade värdet. Om något test misslyckas rapporterar ramverket detta, vilket hjälper till att upptäcka fel tidigt.

question mark

Vilken av följande är en viktig fördel med automatiserad testning i Python-utveckling?

Vänligen välj det korrekta svaret

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 5. Kapitel 1

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Avsnitt 5. Kapitel 1
some-alt