Юнит-тестовете са мощен инструмент за разработчиците, за да гарантират качеството на кода си. Те ти позволяват да тествате функции изолирано и да се уверите, че те работят както е предвидено. В това ръководство ще ти покажа как да напишеш своя първи юнит-тест в Python. Ще научиш не само основите на юнит-тестинга, но и как да изградите тестовете си ефективно.

Най-важни изводи

  • Юнит-тестовете помагат да се открият грешки рано и да се гарантира, че функциите ти работят както е предвидено.
  • Библиотеката за Python unittest предлага лесен начин за имплементиране на тестове.
  • Ефективните тестове обхващат както положителни, така и отрицателни сценарии и проверяват типовете данни на върнатите стойности.

Насоки стъпка по стъпка

Стъпка 1: Подготовка на проекта ти

Първо, ще ти трябва Python файл, в който е дефинирана твоята функция. В примера наричаме файла preisberechnung.py. Тук дефинираш функцията get_verkaufspreis, която взема покупната цена и добавя маржа.

Python Unit-Test Основи: Твоят старт

Стъпка 2: Създай файл за своите юнит-тестове

След това създай нов файл, който ще съдържа тестовете за тази функция. Нека наречем този файл preisberechnung_test.py. Тук ще работиш с модула unittest.

За да използваш фреймуърка, го импортни в началото на файла си:

import unittest
from preisberechnung import get_verkaufspreis
Основи на Python Unit-Test: Твоят старт

Стъпка 3: Дефинирай тестов клас

Тестов клас трябва да наследява unittest.TestCase. Това ти позволява да организираш всички тестове в структурирана форма. Преименувай класа на PreisberechnungTest, за да е ясно какво се тества.

Основи на Python Unit-Test: Твоят старт

Стъпка 4: Напиши своите тестове

Сега е времето да напишеш действителни тестове. Започни с тест, който проверява дали върнатата стойност от get_verkaufspreis има очаквания тип (float):

class PreisberechnungTest(unittest.TestCase): def test_preis_ist_float(self): vk = get_verkaufspreis(100) self.assertIsInstance(vk, float)
Python Unit-Test основи: Твоето начало

Стъпка 5: Тествай невалидни входове

Също така е важно да се тестват невалидни входове. Добави тест, който проверява дали функцията повдига изключение при невалидни входове, като None или низ:

def test_invalid_input(self): with self.assertRaises(TypeError): get_verkaufspreis("invalid")
Python Unit-Test Основи: Твоят старт

Стъпка 6: Изпълни тестовете

За да извършиш тестовете, можеш да го направиш или чрез терминала, или директно в твоята IDE. Ако използваш терминала, изпълни следното:

python -m unittest preisberechnung_test.py

В твоята IDE, като PyCharm, можеш да използваш конфигурацията за изпълнение, за да извършиш тестовете.

Python Unit-Test основи: Твоето начало

Стъпка 7: Провери резултатите

Ако успешно си провел тестовете, ще получиш изход, който показва дали всички тестове са преминали. Зеленият резултат означава, че кодът ти работи както е предвидено.

Стъпка 8: Разширяване на тестовете

В допълнение към основните тестове можеш да добавиш още релевантни сценарии, за да увеличиш сигурността на кода. Помни да тестваш както положителни, така и отрицателни случаи, за да осигуриш, че логиката ти работи при всички обстоятелства.

Python Unit-Test основи: Твоята стъпка в началото

Резюме - Първи юнит-тест с Python: Основи и изпълнение

Писането на юнит-тестове е важна способност, която ти помага да направиш кода си надежден. В това ръководство научи как да напишеш първия юнит-тест в Python, от дефиницията на функцията до изпълнението и проверката на резултатите. Чрез подробни тестове значително ще подобриш поддръжката на кода си и ще откриеш проблеми рано.

Често задавани въпроси

Как да създам юнит-тест в Python?За да създадеш юнит-тест в Python, създай тестов клас, който наследява unittest.TestCase, и напиши тестовете като методи на този клас.

Защо трябва да пиша юнит-тестове?Юнит-тестовете помагат да се открият грешки рано и осигуряват, че функциите ти работят както е предвидено.

Как да изпълня юнит-тестове?Можеш да изпълняваш юнит-тестове чрез терминала с python -m unittest [име на файла] или директно в твоята IDE.

Какви са добри практики за юнит-тестове?Добра практика е да включваш както положителни, така и отрицателни тестови сценарии, както и проверка на типовете данни. Също така, редовността на изпълнение е важна, за да проверяваш измененията в кода незабавно.