Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Writing Tests with unittest | Тестування з Unittest і Pytest
Структурне програмування на Python

Writing Tests with unittest

Свайпніть щоб показати меню

Щоб переконатися, що ваш код працює належним чином, важливо писати автоматизовані тести. Модуль Python unittest — це вбудований фреймворк, який дозволяє легко створювати та організовувати тести. Тестові випадки створюються шляхом написання класів, що наслідують від unittest.TestCase. Усередині цих класів визначаються методи, імена яких починаються з test_. Кожен метод перевіряє певний аспект вашого коду.

Тестовий набір — це колекція тестових випадків, які можна запускати разом. За замовчуванням unittest знаходить і виконує всі методи test_ у ваших класах TestCase. Для перевірки, чи повертає код очікувані результати, використовуються методи перевірки, такі як assertEqual, assertTrue, assertFalse та assertRaises. Ці методи порівнюють фактичні результати з очікуваними та повідомляють про помилки, якщо вони не збігаються.

Для запуску тестів можна скористатися командним рядком або викликати unittest.main() у кінці тестового файлу.

Note
Примітка

assertRaises має відмінний від інших методів перевірки, таких як assertEqual чи assertTrue, підхід. Замість перевірки кінцевого значення, він працює як контекстний менеджер із використанням оператора with для створення захищеної області. Це дозволяє тесту відстежувати виконання коду та "ловити" очікувану помилку.

1234567891011121314151617181920212223
import unittest def add(a, b): return a + b def divide(a, b): return a / b class TestMathFunctions(unittest.TestCase): def test_add_positive_numbers(self): self.assertEqual(add(2, 3), 5) def test_add_negative_numbers(self): self.assertEqual(add(-2, -3), -5) def test_divide_normal(self): self.assertAlmostEqual(divide(10, 2), 5.0) def test_divide_by_zero(self): with self.assertRaises(ZeroDivisionError): divide(10, 0) unittest.main(argv=['first-arg-is-ignored'], exit=False)
Note
Примітка

Функція unittest.main() у цьому розділі містить кілька додаткових параметрів, які потрібні лише для цього навчального середовища. Вони допомагають коректно запускати код на платформі та не є частиною основних концепцій Python, які вам потрібно вивчити зараз.

question mark

Який метод перевірки (assertion) у unittest слід використовувати, щоб перевірити, що виклик функції викликає очікуваний виняток?

Виберіть правильну відповідь

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 5. Розділ 2

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Секція 5. Розділ 2
some-alt