Как создать простой тест с использованием `unittest`?

Для создания простого теста с использованием `unittest` в Python, необходимо:

  1. Импортировать модуль `unittest`.
  2. Создать класс, который наследуется от `unittest.TestCase`.
  3. В классе определить методы, имена которых начинаются с `test_`. Эти методы и будут тестами.
  4. Внутри тестовых методов использовать методы `assert` (например, `assertEqual`, `assertTrue`, `assertFalse`) для проверки ожидаемого результата.
  5. В конце файла добавить `if __name__ == '__main__': unittest.main()` для запуска тестов при запуске файла.

Пример:


import unittest

class MyTest(unittest.TestCase):

    def test_addition(self):
        self.assertEqual(1 + 1, 2)

    def test_string_length(self):
        self.assertTrue(len("hello") == 5)

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

Для создания простого теста с использованием `unittest` в Python, нужно выполнить следующие шаги:

  1. Импортировать модуль `unittest` в ваш файл с тестами.
  2. Создать класс, который наследуется от `unittest.TestCase`. Этот класс будет содержать ваши тестовые методы.
  3. Определить тестовые методы внутри класса. Имена методов должны начинаться с `test_`, чтобы `unittest` распознал их как тесты.
  4. Использовать методы assert из класса `unittest.TestCase` для проверки ожидаемого результата. Например, `assertEqual()`, `assertTrue()`, `assertFalse()`, `assertRaises()`, и т.д.
  5. Запустить тесты, используя `unittest.main()`.

Вот пример простого теста:


import unittest

def sum_numbers(a, b):
  """Функция для сложения двух чисел."""
  return a + b

class TestSum(unittest.TestCase):

  def test_sum_positive_numbers(self):
    """Тест сложения двух положительных чисел."""
    self.assertEqual(sum_numbers(1, 2), 3)

  def test_sum_negative_numbers(self):
    """Тест сложения двух отрицательных чисел."""
    self.assertEqual(sum_numbers(-1, -2), -3)

  def test_sum_mixed_numbers(self):
    """Тест сложения положительного и отрицательного числа."""
    self.assertEqual(sum_numbers(1, -2), -1)

  def test_sum_with_zero(self):
    """Тест сложения с нулем."""
    self.assertEqual(sum_numbers(5, 0), 5)


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

Пояснения к коду:

  • Функция `sum_numbers` - это функция, которую мы будем тестировать.
  • Класс `TestSum` наследуется от `unittest.TestCase`.
  • Методы `test_sum_positive_numbers`, `test_sum_negative_numbers`, `test_sum_mixed_numbers`, и `test_sum_with_zero` - это тестовые методы.
  • В каждом тестовом методе мы используем `self.assertEqual()` для проверки, что результат функции `sum_numbers` соответствует ожидаемому результату.
  • `if __name__ == '__main__': unittest.main()` запускает тесты, когда скрипт запускается напрямую.

Как запустить этот тест:

  1. Сохраните код в файл, например, `test_sum.py`.
  2. Откройте терминал или командную строку.
  3. Перейдите в директорию, где вы сохранили файл `test_sum.py`.
  4. Запустите тест, выполнив команду: `python test_sum.py`

После запуска вы увидите результаты тестов, показывающие, какие тесты прошли успешно, а какие - нет.

0