Writing Tests with unittest
Свайпніть щоб показати меню
Щоб переконатися, що ваш код працює належним чином, важливо писати автоматизовані тести. Модуль Python unittest — це вбудований фреймворк, який дозволяє легко створювати та організовувати тести. Тестові випадки створюються шляхом написання класів, що наслідують від unittest.TestCase. Усередині цих класів визначаються методи, імена яких починаються з test_. Кожен метод перевіряє певний аспект вашого коду.
Тестовий набір — це колекція тестових випадків, які можна запускати разом. За замовчуванням unittest знаходить і виконує всі методи test_ у ваших класах TestCase. Для перевірки, чи повертає код очікувані результати, використовуються методи перевірки, такі як assertEqual, assertTrue, assertFalse та assertRaises. Ці методи порівнюють фактичні результати з очікуваними та повідомляють про помилки, якщо вони не збігаються.
Для запуску тестів можна скористатися командним рядком або викликати unittest.main() у кінці тестового файлу.
assertRaises має відмінний від інших методів перевірки, таких як assertEqual чи assertTrue, підхід. Замість перевірки кінцевого значення, він працює як контекстний менеджер із використанням оператора with для створення захищеної області. Це дозволяє тесту відстежувати виконання коду та "ловити" очікувану помилку.
1234567891011121314151617181920212223import 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)
Функція unittest.main() у цьому розділі містить кілька додаткових параметрів, які потрібні лише для цього навчального середовища. Вони допомагають коректно запускати код на платформі та не є частиною основних концепцій Python, які вам потрібно вивчити зараз.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат