Enhet-Tester är ett kraftfullt verktyg för utvecklare för att säkerställa kvaliteten på deras kod. De gör det möjligt för dig att testa funktioner isolerat och se till att de fungerar som avsett. I den här guiden visar jag dig hur du skriver ditt första enhetstest i Python. Du kommer inte bara att lära dig grunderna i enhetstestning utan också hur du kan bygga dina tester effektivt.

Viktigaste insikterna

  • Enhetstester hjälper till att upptäcka fel tidigt och säkerställa att dina funktioner fungerar som avsett.
  • Python-biblioteket unittest erbjuder ett enkelt sätt att implementera tester.
  • Effektiva tester inkluderar både positiva och negativa scenarier och kontrollerar datatyperna av returer.

Steg-för-steg-guide

Steg 1: Förbered ditt projekt

Först behöver du en Python-fil där din funktion är definierad. I vårt exempel kallar vi filen prisberegning.py. Här definierar du en funktion get_verkaufspreis som tar emot inköpspriset och lägger till en marginal.

Python Unit-Test grunder: Din introduktion

Steg 2: Skapa en fil för dina enhetstester

Skapa sedan en ny fil som ska innehålla tester för denna funktion. Låt oss kalla denna fil prisberegning_test.py. Här kommer du att arbeta med unittest-modulen.

För att använda ramverket importerar du det i början av din fil:

import unittest
from prisberegning import get_verkaufspreis
Python Unit-Test Grunder: Din början

Steg 3: Definiera en testklass

En testklass bör ärva från unittest.TestCase. Detta gör att du kan organisera alla tester på ett strukturerat sätt. Döp klassen till PrisberegningTest för att tydliggöra vad som testas.

Python Unit-Test grunder: Din ingång

Steg 4: Skriv dina tester

Nu är det dags att skriva faktiska tester. Börja med ett test som kontrollerar om returen från get_verkaufspreis har den förväntade typen (float):

class PrisberegningTest(unittest.TestCase): def test_preis_är_float(self): vk = get_verkaufspreis(100) self.assertIsInstance(vk, float)
Python Unit-Test grunder: Din ingång

Steg 5: Testa ogiltiga indata

Det är också viktigt att testa ogiltiga indata. Lägg till ett test som kontrollerar om funktionen kastar ett undantag vid ogiltiga indata, som None eller en sträng:

def test_ogiltig_input(self): with self.assertRaises(TypeError): get_verkaufspreis("ogiltig")
Python Unit-Test grunder: Din introduktion

Steg 6: Utför tester

För att köra dina tester kan du göra detta antingen via terminalen eller direkt i din IDE. Om du använder terminalen, kör följande:

python -m unittest prisberegning_test.py

I din IDE, som PyCharm, kan du använda körkonfigurationen för att utföra testerna.

Python Unit-Test grunder: Din början

Steg 7: Kontrollera resultaten

När du framgångsrikt kör dina tester kommer du att få en utdata som visar om alla tester har klarats. Ett grönt resultat betyder att din kod fungerar som avsett.

Steg 8: Utöka testerna

Förutom grundtester kan du lägga till ytterligare relevanta scenarier för att öka säkerheten i koden. Tänk på att testa både positiva och negativa fall för att säkerställa att din logik fungerar i alla situationer.

Python Unit-Test Grunder: Din ingång

Sammanfattning - Första enhetstestet med Python: Grunder och genomförande

Att skriva enhetstester är en viktig färdighet som hjälper dig att göra din kod pålitlig. I denna guide har du lärt dig hur du skriver ditt första enhetstest i Python, från definitionen av funktionen till körning och verifiering av resultaten. Genom noggranna tester förbättras underhållbarheten i din kod avsevärt och problem upptäckts i tid.

Vanliga frågor

Hur skapar jag ett enhetstest i Python?För att skapa ett enhetstest i Python, skapa en testklass som ärver från unittest.TestCase och skriv tester som metoder i denna klass.

Varför ska jag skriva enhetstester?Enhetstester hjälper till att upptäcka fel tidigt och säkerställer att dina funktioner fungerar som avsett.

Hur kör jag enhetstester?Du kan köra enhetstester via terminalen med python -m unittest [filnamn] eller direkt i din IDE.

Vad är bra praxis för enhetstester?En bra praxis omfattar både positiva och negativa testfall samt kontroll av datatyper. Regelbundenhet vid körning är också viktig för att omedelbart kontrollera förändringar i koden.