Урок 19: Тестирование кода в Python

Тестирование кода в Python

Краткое введение

Тестирование кода — это важный этап разработки программного обеспечения, который помогает обеспечить корректность работы кода и выявить ошибки на ранних стадиях. В Python для написания тестов часто используются фреймворки, такие как unittest или pytest, которые предоставляют удобные инструменты для создания и выполнения тестов.

Теоретическая часть

Модуль unittest

Unittest — это встроенный в Python модуль для тестирования, который предоставляет классы и методы для написания тестов, их группировки и запуска в виде тестовых наборов.

Модуль pytest

Pytest — это сторонний модуль для тестирования, который предлагает более простой и удобный синтаксис для написания тестов по сравнению с unittest, а также дополнительные возможности, такие как параметризация тестов и поддержка фикстур.

Примеры кода

# Пример теста с использованием unittest
import unittest

def add(a, b):
 return a + b

class TestAddFunction(unittest.TestCase):
 def test_add(self):
 self.assertEqual(add(1, 2), 3)
 self.assertEqual(add(-1, 1), 0)

if __name__ == '__main__':
 unittest.main()

# Пример теста с использованием pytest
import pytest

def subtract(a, b):
 return a - b

def test_subtract():
 assert subtract(3, 1) == 2
 assert subtract(5, 3) != 3

Практические задания

1. Напишите несколько тестов для функции, которая проверяет, является ли переданная строка палиндромом.
2. Создайте тесты для функции, которая возвращает N-е число Фибоначчи, используя оба фреймворка: unittest и pytest.

Решение задания

# Тестирование функции палиндрома с unittest
class TestPalindromeFunction(unittest.TestCase):
 def test_palindrome(self):
 self.assertTrue(is_palindrome("radar"))
 self.assertFalse(is_palindrome("python"))

# Тестирование функции Фибоначчи с pytest
def test_fibonacci():
 assert fibonacci(5) == 5
 assert fibonacci(7) == 13

© 2024 realschule.ru

Категория: Python с нуля | Добавил: Admin (07.03.2024)
Просмотров: 119 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *: