В моем последнем блоге о юнит-тестировании мы говорили о том, что такое юнит-тестирование и зачем оно нам нужно, а также реализовали его в какой-то степени. Этот блог является его продолжением. Чтобы понять это, вы должны сначала пройти мою первую часть модульного тестирования.

И в этом блоге мы реализуем модульное тестирование и увидим результаты двух сценариев в коде.

Поэтому я предложил имена файлов для обоих файлов, а именно square_area_test.py и square_area.py . Теперь мы добавим код модульного тестирования.

Основная операция будет в файле square_area.py, а код ниже:

def square_area(s):
    return (s*s)

Мы начнем тестировать код в файле square_area_test.py, добавив первую строку:

import unittest

Затем мы добавляем класс с именем TestSquare, в котором мы определяем различные методы, и для создания различных ситуаций мы используем метод assertAlmostEqual. Ниже приведен код дальнейших шагов тестирования:

from square_area import*
import unittest
class TestSquare(unittest.TestCase):
      def test_area(self):
       self.assertAlmostEqual(square_area(9),9)
        self.assertAlmostEqual(square_area(0),0)
         self.assertAlmostEqual(square_area(1),1)
           self.assertAlmostEqual(square_area(1.9),1,9)

Прежде чем тестировать приведенный выше скрипт, запустите модуль unittest с указанием -m в коде.

!python -m unittest square_area_test.py

Вывод должен показать вам «ОК», что означает, что тест прошел успешно.

Что, если мы внесем некоторые изменения в предложение-утверждение?

from square_area import*
import unittest
class TestSquare(unittest.TestCase):
      def test_area(self):
       self.assertAlmostEqual(square_area(9),9)
        self.assertAlmostEqual(square_area(0),0)
         self.assertAlmostEqual(square_area(1),1)
           self.assertAlmostEqual(square_area(1.9),0)

В последней строке я заменил 1.9 на 0 и при запуске этого теста. Снова указав -m.

!python -m unittest square_area_test.py

Вывод покажет вам «F», что означает неудачу, а также покажет AssertionError, следовательно, этот тест был неудачным. Помимо сообщения об ошибке, вы можете увидеть причину, по которой произошла ошибка, и решить ее соответствующим образом. Это были два типа результатов, ожидаемых при тестировании.

Прежде чем мы закончим этот блог, есть еще одно важное замечание, о котором пользователь должен узнать. В коде, который мы разработали, функция def всегда должна начинаться с ключевого слова test, как я использовал test_area.

Посмотрим, что произойдет, если мы этого не сделаем.

from square_area import*
import unittest
class TestSquare(unittest.TestCase):
      def area(self):
       self.assertAlmostEqual(square_area(9),9)
        self.assertAlmostEqual(square_area(0),0)
         self.assertAlmostEqual(square_area(1),1)
           self.assertAlmostEqual(square_area(1.9),1.9)

Я удалил ключевое слово test и оставил только area. Теперь мы запускаем его

!python -m unittest test_volume_cuboid.py

Вывод, который вы видите, будет показывать «ОК», а также «Выполнить 1 тест», это означает, что он выполнил только 1 тест, и, поскольку он был правильным, он дал результат, поэтому мы всегда добавляем ключевое слово test или ваш скрипт не полностью проверен .

Ссылка: https://www.datacamp.com/community/tutorials/unit-testing-python

Итак, это были некоторые сценарии и способы тестирования вашего сценария. Увидимся в следующем!