Python

Урок за Python Unittest

Урок за Python Unittest

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

Тестването се извършва след завършване на процеса на разработка. Потребителите могат също да започнат тестване, когато скриптът за тестване трябва да бъде проверен въз основа на критериите на теста. От разработчиците се очаква да напишат ръчните типове на изходния код. По принцип ръчното писане на кодове за тестване на модули е забързана задача, но в Python това се прави с помощта на вградена функция, наречена unittest.

Unittest

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

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

За да напишете модулните тестове за вашия код, винаги започвайте с най-малката единица, която може да бъде тествана от целия ви код, след което преминете към други единици. По този начин ще проверите как взаимодейства най-малката избрана единица, за да изгради цял тест за единица.

Рамката за модулно тестване на Python се формира, като се вземе предвид Junit на java. Той има същите и същите функции, като модулното тестване се извършва на други различни видове езици. Рамката на модулното тестване в Python помага при тестване за автоматизация, настройка на споделяне, обединяване на много тестове в един голям набор и независими тестове

Примери:

Сега в примера проверяваме кода, за да открием сумата в кода на Python, използвайки функцията sum (). Отговорът на това обобщение трябва да бъде 12, което е правилно.

>>> твърди сума ([2, 4, 6]) == 12, "Трябва да е равно на 12"

От друга страна, ако се опитаме да напишем грешна изходна стойност, която сумата () е неправилна, резултатите ще се провалят. Ще върне AssertionError. Изходът, посочен от нас, е грешен, което е 12, а действителният изход трябва да бъде 6, следователно той върна тази грешка.

>>> твърди сума ([2, 2, 2]) == 12, "Трябва да е равно на 12"

Сега, вместо да тестваме на REPL, ще поставим нов файл на Python и ще го наименуваме тест_сума.py

>> def testValue_sum ():
утвърждавам сума ([2, 4, 6]) == 12, "Трябва да е равно на 12"
ако __name__ == "__main__":
testValue_sum ()
print ("Всичко е предадено правилно")

След като напишете тестовия случай, можете да получите достъп до директорията, която съдържа test_sum.py и след това въведете:

$ python test_sum.py

Изход:

Изходната стойност, когато е подобна на показаната, ще одобри правилната стойност.

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

def testValue_sum ():
утвърждавам сума ([2, 4, 6]) == 12, "Трябва да е равно на 12"
def testValue_sum_tuple ():
твърдя сума ((1, 1, 1)) == 6, "Трябва да е равно на 6"
ако __name__ == "__main__":
testValue_sum ()
testValue_sum_tuple ()
print ("Всичко е предадено правилно")

Този път отново ще дадем име на файла тест_сума.py 

Първият кодов блок е правилен, докато вторият кодов блок е грешен и има грешка, така че нашият изход ще върне същото.

Сега ще се върнем към директорията на проекта, където запазихме .py файл, и след това тествайте файла, като използвате следната команда:

$ python test_sum.py

Изход:

Този път, тъй като входният код е имал грешка, се очаква да върне грешката Assertion в отговор.

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

Изискванията на Unittest са, че потребителите могат да поставят своите тестове в класове като различни методи, потребителите могат да използват поредица от методи за твърдение, а класът TestCase може да се използва вместо изявлението за твърдение.

Потребителите могат да преобразуват примера, обсъден в предишната половина, в unittest тест.

Първо, импортирайте библиотека unitest. След това трябва да създадете TestSum от различни класове.

Създайте нов файл за кода, обсъден по-долу:

импортиране на единичен тест
клас TestSum (unittest.Тестов случай):
def testValue_sum (самостоятелно):
себе си.assertEqual (сума ([2, 4, 6]), 12, "Трябва да е равно на 12")
def testValue_sum_tuple (самостоятелно):
себе си.assertEqual (sum ((1, 1, 1)), 6, "Трябва да е равно на 6")
ако __name__ == '__main__':
unittest.главен ()

След като изпълните тази команда, изходът има точка. Това означава успех, а F означава провал.

И така, имаме успех, а друг е провал.

Изход:

Писане на първия тест:

Създайте нова папка на проекта и след това създайте нова папка, ще я наречем sum_file. Вътре в него създайте файл и го наименувайте __init__.py.  Направете папката на проекта като тази:

проект /

└── файл_сума /
└── __init__.py

След това трябва да отворите my_sum / __ init__.py и създайте нова функция sum (). Ще бъде итеративно (списък, кортеж или набор), за да добавите много стойности:

дефинирана сума (аргумент):
total_ValueCalculated = 0
за val in arg:
total_ValueCalculated + = вал
върнете total_ValueCalculated

След това трябва да създадете тест файл. Започнете с писане на тестове и създайте тестов файл, наречен testFile.py. За да импортирате приложението и то трябва да бъде тествано, поставете файла testFile.py над вашата папка на пакета. Следното ще бъде цялостен вид на вашата директория:

проект /

├── сума_файл /
│ └── __init__.py
|
└── testFile.py

Както беше обсъдено по-рано, за да тествате кода, можете да използвате следната команда в терминалния прозорец / командния ред:

$ python -m unittest тест

Заключение

Статията разглежда процеса на модулно тестване в Python. Тестването е една от полезните характеристики на софтуерното инженерство, което е в състояние да раздели кодовете на по-малки парчета и след това да ги изпробва един по един. Потребителите могат също да компилират всички тестови проби / кодове на единици в една голяма колекция. Unittest е една функция, използвана в Python за лесно използване на тестовете.

Как да инсталирате и играете Doom на Linux
Въведение в Doom Серията Doom възниква през 90-те години след пускането на оригиналния Doom. Това беше незабавен хит и от този момент нататък серията ...
Vulkan за потребители на Linux
С всяко ново поколение графични карти виждаме, че разработчиците на игри преместват границите на графичната вярност и се приближават една крачка до фо...
OpenTTD срещу Simutrans
Създаването на собствена транспортна симулация може да бъде забавно, релаксиращо и изключително примамливо. Ето защо трябва да сте сигурни, че изпробв...