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 | Behärska Pytest-ramverket
Practice
Projects
Quizzes & Challenges
Quizzes
Challenges
/
Python Strukturell Programmering

bookIntroduktion till Testning i Python

I avsnittet Felfångst undersökte vi hur man hanterar både syntaxfel och körtidsfel, men vi gick inte in på hantering av logiska fel. I detta avsnitt kommer vi att utforska två typer av testning som är avgörande för att validera logiken i våra applikationer: manuell och automatiserad testning.

Testning delas generellt in i dessa två kategorier. Manuell testning innebär att mänskliga testare utför tester genom att interagera med applikationen och verifiera att dess funktioner uppfyller kraven. Denna typ av testning är användbar men kan vara tidskrävande och känslig för mänskliga misstag.

Automatiserad testning använder däremot skript och verktyg för att utföra tester automatiskt, utan direkt mänsklig inblandning, vilket säkerställer att applikationen beter sig som förväntat. Detta påskyndar inte bara testprocessen utan ökar även dess noggrannhet och konsekvens.

Introduktion till testdriven utveckling (TDD)

En central metodik inom automatiserad testning är Testdriven utveckling (TDD). TDD är en innovativ utvecklingsprocess där tester skrivs innan själva koden. Processen följer en enkel cykel: skriv ett test, kör testet (som initialt ska misslyckas), skriv minsta möjliga kod för att testet ska passera och refaktorera sedan koden för att uppnå renhet och effektivitet.

Översikt av Unittest- och Pytest-ramverken

Python erbjuder flera ramverk för att skriva och köra tester, där Unittest och Pytest är två av de mest populära.

Unittest

Unittest är Pythons inbyggda testningsramverk. Unittest är klassbaserat och kräver att du organiserar dina tester i klasser som är underklasser till unittest.TestCase.

Pytest

Pytest är ett kraftfullt tredjeparts testningsramverk som stödjer enklare testfall för både enkla och komplexa testsituationer. Till skillnad från Unittest tillåter Pytest att du skriver testfunktioner utan att behöva kapsla in dem i klasser.

Testning av en funktion för medelvärdesberäkning

Låt oss titta på en enkel funktion som beräknar medelvärdet av två tal och se hur den kan testas med både Unittest och Pytest.

Function to be Tested:

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

Testning med Unittest

import unittest

class TestAverageCalculation(unittest.TestCase):
    def test_average(self):
        result = calculate_average(10, 20)
        self.assertEqual(result, 15)

Testning med pytest

import pytest

def test_average():
    assert calculate_average(10, 20) == 15

Medan Unittest är utmärkt för utvecklare som är bekanta med xUnit-formatet och föredrar ett strukturerat, objektorienterat tillvägagångssätt för testning, passar Pytest dem som söker mer flexibilitet och enkelhet, tillsammans med kraftfulla funktioner för komplexa tester som inte hanteras lika enkelt av Unittest.

Vi ses i nästa kapitel!

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 4. 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

Suggested prompts:

Can you explain more about logical errors and how to detect them?

What are the main differences between manual and automated testing?

Could you provide more examples of using Unittest and Pytest?

bookIntroduktion till Testning i Python

Svep för att visa menyn

I avsnittet Felfångst undersökte vi hur man hanterar både syntaxfel och körtidsfel, men vi gick inte in på hantering av logiska fel. I detta avsnitt kommer vi att utforska två typer av testning som är avgörande för att validera logiken i våra applikationer: manuell och automatiserad testning.

Testning delas generellt in i dessa två kategorier. Manuell testning innebär att mänskliga testare utför tester genom att interagera med applikationen och verifiera att dess funktioner uppfyller kraven. Denna typ av testning är användbar men kan vara tidskrävande och känslig för mänskliga misstag.

Automatiserad testning använder däremot skript och verktyg för att utföra tester automatiskt, utan direkt mänsklig inblandning, vilket säkerställer att applikationen beter sig som förväntat. Detta påskyndar inte bara testprocessen utan ökar även dess noggrannhet och konsekvens.

Introduktion till testdriven utveckling (TDD)

En central metodik inom automatiserad testning är Testdriven utveckling (TDD). TDD är en innovativ utvecklingsprocess där tester skrivs innan själva koden. Processen följer en enkel cykel: skriv ett test, kör testet (som initialt ska misslyckas), skriv minsta möjliga kod för att testet ska passera och refaktorera sedan koden för att uppnå renhet och effektivitet.

Översikt av Unittest- och Pytest-ramverken

Python erbjuder flera ramverk för att skriva och köra tester, där Unittest och Pytest är två av de mest populära.

Unittest

Unittest är Pythons inbyggda testningsramverk. Unittest är klassbaserat och kräver att du organiserar dina tester i klasser som är underklasser till unittest.TestCase.

Pytest

Pytest är ett kraftfullt tredjeparts testningsramverk som stödjer enklare testfall för både enkla och komplexa testsituationer. Till skillnad från Unittest tillåter Pytest att du skriver testfunktioner utan att behöva kapsla in dem i klasser.

Testning av en funktion för medelvärdesberäkning

Låt oss titta på en enkel funktion som beräknar medelvärdet av två tal och se hur den kan testas med både Unittest och Pytest.

Function to be Tested:

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

Testning med Unittest

import unittest

class TestAverageCalculation(unittest.TestCase):
    def test_average(self):
        result = calculate_average(10, 20)
        self.assertEqual(result, 15)

Testning med pytest

import pytest

def test_average():
    assert calculate_average(10, 20) == 15

Medan Unittest är utmärkt för utvecklare som är bekanta med xUnit-formatet och föredrar ett strukturerat, objektorienterat tillvägagångssätt för testning, passar Pytest dem som söker mer flexibilitet och enkelhet, tillsammans med kraftfulla funktioner för komplexa tester som inte hanteras lika enkelt av Unittest.

Vi ses i nästa kapitel!

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 4. Kapitel 1
some-alt