Підручник з PyUnit: Структура модульного тестування Python (з прикладом)

Зміст:

Anonim

Що таке одиничне тестування?

Модульне тестування в Python проводиться для виявлення помилок на ранній стадії розробки програми, коли помилки менш часто повторюються і дешевше їх виправляти.

Юніт-тест - це скрипт-тест рівня коду, розроблений на Python для перевірки невеликої "одиниці" функціональності. Unit test - це об’єктно-орієнтована структура, заснована на тестових приладах.

Методи модульного тестування Python

Тестування модулів Python в основному передбачає тестування певного модуля без доступу до будь-якого залежного коду. Розробники можуть використовувати такі методи, як заглушки та макети, щоб розділити код на "одиниці" та запустити тестування рівня блоку на окремих фрагментах.

  • TDD-розроблений TDD: Тестування модулів слід проводити разом з Python, і для цього розробники використовують метод розробленого тесту. У методі TDD ви спочатку розробляєте тести Python Unit, і лише потім ви продовжуєте писати код, який реалізує цю функцію.
  • Заглушки та знущання: це дві основні техніки, що імітують підроблені методи, що перевіряються. Заглушка використовується для заповнення в деякій залежності , необхідної для модульного тестування для коректної роботи. Mock з іншого боку , є об'єктом підробки , яку запускає тести , де ми кладемо Assert.

    Наміри обох методів однакові для усунення тестування всіх залежностей класу або функції.

Структура модульного тестування Python

Щоб полегшити процес модульного тестування та поліпшити якість вашого проекту, рекомендується модуль тестування Python. Структура модульного тестування включає

  • PyUnit: PyUnit підтримує додатки, тестові кейси, тестові набори та тест-драйвер для автоматизованого тестування коду. У PyUnit ви можете організувати тестові кейси в набори з однаковими приладами
  • Нос: Вбудовані плагіни Nose допомагають вам захопити вихід, покриття коду, доктести тощо. Синтаксис носа досить простий і зменшує бар'єри для написання тестів. Він розширює модульний тест Python, щоб полегшити тестування.
  • Doctest: Сценарій тестування Doctest проходить у тексті документа з невеликою функцією внизу файлу. Doctest дозволяє протестувати ваш код, запускаючи приклади, включені в документацію, і перевіряючи, що вони повернули очікувані результати. Приклад використання doctest менш детальний і не враховує особливих випадків. Вони корисні як виразна документація щодо основного випадку використання модуля та його компонентів.

Модульне тестування за допомогою PyUnit

Pyunit - це порт Python JUnit. Як частина Pyunit, в модулі unittest є п’ять ключових класів.

  • Клас TestCase : Клас TestCase несе тестові процедури і забезпечує гачки для виконання кожної процедури та подальшого прибирання
  • Клас TestSuite : він обслуговується як контейнер колекції, і він може мати декілька об'єктів тестового корпусу та кілька об'єктів тестових наборів
  • Клас TestLoader : Цей клас завантажує тестові кейси та набори, визначені локально або із зовнішнього файлу. Він випромінює об'єкти тестового набору, які мають ці набори та корпуси
  • Клас TextTestRunner : Для запуску тестів він обслуговує стандартну платформу для виконання тестів
  • Клас TestResults : пропонує стандартний контейнер для результатів тесту

Розробка тесту для тестування Python за допомогою PyUnit

Одиничний тест забезпечує базовий клас, тестовий приклад, який може бути використаний для створення нових тестових кейсів. Для проектування тестового випадку існує три набори використовуваних методів

unittest.TestCase

setUp()teardown()skipTest(aMesg:string)fail(aMesg:string)id():stringshortDescription():string

У першому наборі знаходяться гачки до і після тесту. Метод setup () починається перед кожною тестовою процедурою, розбір () після процедури.

Другий набір методів контролює виконання тесту. Обидва методи беруть рядок повідомлення як вхідні дані, і обидва скасовують поточний тест. Але метод skiptest () скасовує поточний тест, тоді як метод fail () повністю не виконує його.

Останній чи третій метод допомагають визначити тест. Метод id () повертає рядок, що складається з імені тестового об'єкта та підпрограми тесту. А метод shortDescription () повертає коментар docstr на початку кожної тестової процедури.

Переваги використання модульного тестування Python

  • Це допоможе вам виявити помилки на початку циклу розробки
  • Це допомагає писати кращі програми
  • Він легко синхронізується з іншими методами та інструментами тестування
  • У ньому буде набагато менше помилок
  • Його легше модифікувати в майбутньому з дуже меншими наслідками