Python

Учебное пособие по Python Unittest

Учебное пособие по Python Unittest

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

Тестирование проводится после завершения процесса разработки. Пользователи также могут начать тестирование, когда тестовый сценарий должен быть проверен на основе критериев тестирования. Ожидается, что разработчики напишут ручные типы исходного кода. Как правило, писать коды модульного тестирования вручную - сложная задача, но в Python это делается с помощью встроенной функции, называемой unittest.

Модульный тест

Тестирование на Python выполняется фреймворком unittest. Модульное тестирование делает код безопасным и простым в использовании в будущем. Пользователи обычно не могут предсказать эти случаи, но могут легко их решить. Unittest может представлять собой весь модуль, отдельную функцию и весь интерфейс (класс / модуль).

Как писать модульные тесты для вашего кода?

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

Фреймворк модульного тестирования Python был сформирован с учетом java-интерфейса Junit. Он имеет те же функции, что и модульное тестирование, выполняемое на других языках. Фреймворк модульного тестирования в Python помогает в автоматическом тестировании, настройке совместного использования, объединении множества тестов в один большой набор и независимых тестах

Примеры:

Теперь в примере мы проверяем код, чтобы узнать сумму в коде Python, используя функцию sum (). Ответ на это суммирование должно быть 12, что правильно.

>>> assert sum ([2, 4, 6]) == 12, "Должно быть равно 12"

С другой стороны, если мы попытаемся написать неправильное выходное значение, которое sum () неверно, результаты не удастся. Он вернет AssertionError. Указанный нами вывод неверен, это 12, а фактический вывод должен быть 6, поэтому он вернул эту ошибку.

>>> assert sum ([2, 2, 2]) == 12, "Должно быть равно 12"

Теперь, вместо тестирования REPL, мы добавим новый файл Python и назовем его test_sum.ру

>> def testValue_sum ():
assert sum ([2, 4, 6]) == 12, "Должно быть равно 12"
если __name__ == "__main__":
testValue_sum ()
print («Все прошло правильно»)

После написания тестового примера вы можете получить доступ к каталогу, в котором есть test_sum.py файл, а затем введите:

$ python test_sum.ру

Выход:

Выходное значение, если оно похоже на отображаемое, подтвердит правильное значение.

Давайте создадим еще один файл для .ру проверить сумму. Пример, отображаемый в коде, может быть использован в качестве образца, скопировав:

def testValue_sum ():
assert sum ([2, 4, 6]) == 12, "Должно быть равно 12"
def testValue_sum_tuple ():
assert sum ((1, 1, 1)) == 6, "Должно быть равно 6"
если __name__ == "__main__":
testValue_sum ()
testValue_sum_tuple ()
print («Все прошло правильно»)

На этот раз мы снова назовем файл test_sum.ру 

Первый блок кода правильный, тогда как второй блок кода неправильный и содержит ошибку, поэтому наш вывод вернет то же самое.

Теперь мы вернемся в каталог проекта, где мы сохранили .py файл, а затем проверьте файл с помощью следующей команды:

$ python test_sum.ру

Выход:

На этот раз, поскольку во входном коде была ошибка, ожидается, что он вернет в ответ ошибку утверждения.

Пример использования unittest:

Требования к модульному тестированию заключаются в том, что пользователи могут помещать свои тесты в классы как разные методы, пользователи могут использовать ряд методов утверждения, а класс TestCase может использоваться вместо утверждения утверждения.

Пользователи могут преобразовать пример, рассмотренный в предыдущей половине, в тестовый пример unittest.

Во-первых, импортируйте библиотеку unitest. Далее вам нужно создать TestSum из разных классов.

Создайте новый файл для кода, описанного ниже:

импорт unittest
класс TestSum (unittest.Прецедент):
def testValue_sum (сам):
себя.assertEqual (sum ([2, 4, 6]), 12, «Должно быть равно 12»)
def testValue_sum_tuple (сам):
себя.assertEqual (sum ((1, 1, 1)), 6, «Должно быть равно 6»)
если __name__ == '__main__':
модульный тест.основной()

После того, как вы выполнили эту команду, на выходе появится точка. Это означает успех, а буква F - неудача.

Итак, у нас есть успех, а еще один - неудача.

Выход:

Написание первого теста:

Создайте новую папку проекта, а затем создайте новую папку, мы назовем ее sum_file. Внутри него создайте файл и назовите его __init__.ру.  Сделайте папку проекта такой:

проект/

└── sum_file /
└── __init__.ру

Затем вам нужно открыть my_sum / __ init__.py и создайте новую функцию sum (). Будет итерация (список, кортеж или набор) для добавления множества значений:

def sum (arg):
total_ValueCalculated = 0
для val в arg:
total_ValueCalculated + = val
вернуть total_ValueCalculated

Далее вам нужно создать контрольная работа файл. Начните с написания тестов и создайте тестовый файл с именем testFile.ру. Чтобы импортировать приложение, а оно должно быть протестировано, поместите файл testFile.ру над вашей папкой пакета. Ниже будет общий вид вашего каталога:

проект/

├── sum_file /
│ └── __init__.ру
|
└── testFile.ру

Как обсуждалось ранее, чтобы протестировать код, вы можете использовать следующую команду в окне терминала / командной строке:

$ python -m unittest тест

Заключение

В статье рассматривается процесс модульного тестирования на Python. Тестирование - одна из полезных функций программной инженерии, которая способна разбивать коды на более мелкие части, а затем пробовать их один за другим. Пользователи также могут скомпилировать все тестовые образцы / коды модулей в одну большую коллекцию. Unittest - это одна из функций, используемых в Python для упрощения тестирования.

5 лучших аркад для Linux
В настоящее время компьютеры - это серьезные машины, используемые для игр. Если вы не можете получить новый рекорд, вы поймете, о чем я. В этом посте ...
Битва за Веснот 1.13.6 Выпущена разработка
Битва за Веснот 1.13.6, выпущенная в прошлом месяце, является шестой разработкой в ​​1.13.x и содержит ряд улучшений, в первую очередь пользовательско...
Как установить League Of Legends на Ubuntu 14.04
Если вы поклонник League of Legends, то это возможность для вас протестировать League of Legends. Обратите внимание, что LOL поддерживается в PlayOnLi...