Урок за PyUnit: Рамка за тестване на Python Unit (с пример)

Съдържание:

Anonim

Какво е единично тестване?

Единичното тестване в Python се извършва за идентифициране на грешки в началото на етапа на разработка на приложението, когато грешките са по-малко повтарящи се и по-евтини за отстраняване.

Тестът на единица е тест на ниво скрипт на код, предназначен в Python, за да провери малка "единица" на функционалност. Unit test е обектно ориентирана рамка, базирана на тестови тела.

Техники за тестване на модули на Python

Python Unit Testing включва основно тестване на определен модул, без достъп до зависим код. Разработчиците могат да използват техники като мъничета и макети, за да разделят кода на "единици" и да стартират тестване на ниво единица на отделните парчета.

  • TDD-разработено TDD: Тестване на модули трябва да се извършва заедно с Python, а за това разработчиците използват метод на разработен тест В метода TDD първо проектирате Python Unit тестове и едва след това продължавате да пишете кода, който ще внедри тази функция.
  • Stubs and Mocks: Те са две основни техники, които симулират фалшиви методи, които се тестват. А все още мъниче се използва за запълване на някои зависимост, необходима за единица тест, за да работи коректно. А Мок , от друга страна е фалшив обект, който работи на тестовете, където ще се постави поддържали.

    Намеренията на двата метода са еднакви, за да се елиминира тестването на всички зависимости на клас или функция.

Рамка за тестване на модули на Python

За да улесните процеса на Unit Testing и да подобрите качеството на вашия проект, се препоръчва Python Unit Testing Framework. Рамката за единично тестване включва

  • PyUnit: PyUnit поддържа приспособления, тестови случаи, тестови пакети и тестова програма за автоматично тестване на кода. В PyUnit можете да организирате тестови случаи в апартаменти със същите тела
  • Нос: Вградените приставки на Nose ви помагат за улавяне на изхода, покритие на кода, доктестове и др. Синтаксисът на носа е доста по-опростен и намалява бариерите пред писането на тестове. Той разширява Python unittest, за да улесни тестването.
  • 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 Unit тестване

  • Той ви помага да откривате грешки в началото на цикъла на разработка
  • Помага ви да пишете по-добри програми
  • Той се синхронизира лесно с други методи и инструменти за тестване
  • Ще има много по-малко грешки
  • По-лесно е да се модифицира в бъдеще с много по-малко последствия