Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> Python

PyUnit-zelfstudie:Python Unit Testing Framework (met voorbeeld)

Wat is Unit Testing?

Unit Testing in Python wordt gedaan om bugs vroeg in de ontwikkelingsfase van de applicatie te identificeren wanneer bugs minder terugkerend zijn en minder duur om te repareren.

Een unit-test is een gescripte test op codeniveau die is ontworpen in Python om een ​​kleine "eenheid" van functionaliteit te verifiëren. Eenheidstest is een objectgeoriënteerd raamwerk dat is gebaseerd op testopstellingen.

Testtechnieken voor Python-eenheden

Python Unit Testing omvat voornamelijk het testen van een bepaalde module zonder toegang tot enige afhankelijke code. Ontwikkelaars kunnen technieken zoals stubs en mocks gebruiken om code te scheiden in "eenheden" en testen op eenheidsniveau op de afzonderlijke stukken uit te voeren.

  • Testgestuurde ontwikkeling TDD: Unit Testing moet samen met Python worden gedaan en daarvoor gebruiken ontwikkelaars de Test-Driven Development-methode. In de TDD-methode ontwerp je eerst Python Unit-tests en pas daarna ga je door met het schrijven van de code die deze functie zal implementeren.
  • Stubs en mocks: Het zijn twee hoofdtechnieken die nepmethoden simuleren die worden getest. Een Stub wordt gebruikt om enige afhankelijkheid in te vullen die nodig is om de unittest correct te laten verlopen. Een Spot aan de andere kant is een nep-object dat de tests uitvoert waar we beweren.

    De bedoelingen van beide methoden zijn hetzelfde om het testen van alle afhankelijkheden van een klasse of functie te elimineren.

Python Unit Testing Framework

Om het Unit Testing-proces gemakkelijker te maken en de kwaliteit van uw project te verbeteren, wordt het Python Unit Testing Framework aanbevolen. Het Unit Testing-raamwerk omvat

  • PyUnit: PyUnit ondersteunt fixtures, testcases, testsuites en een testrunner voor het geautomatiseerd testen van de code. In PyUnit kun je testcases organiseren in suites met dezelfde armaturen
  • Neus: De ingebouwde plug-ins van Nose helpen u bij het vastleggen van uitvoer, codedekking, doctests, enz. De syntaxis van Nose is vrij eenvoudiger en vermindert de barrières voor het schrijven van tests. Het breidt Python unittest uit om het testen gemakkelijker te maken.
  • Doctest: Het Doctest-testscript gaat in docstring met een kleine functie onderaan het bestand. Met Doctest kunt u uw code testen door voorbeelden uit de documentatie uit te voeren en te controleren of ze de verwachte resultaten hebben opgeleverd. De use-case van doctest is minder gedetailleerd en bevat geen speciale gevallen. Ze zijn nuttig als een expressieve documentatie van de belangrijkste use case van een module en zijn componenten.

Eenheid testen met PyUnit

Pyunit is een Python-poort van JUnit. Als onderdeel van Pyunit zijn er in de unittest-module vijf sleutelklassen.

  • TestCase-klasse :De TestCase-klasse draagt ​​de testroutines en levert haken voor het maken van elke routine en het daarna opruimen
  • TestSuite-klasse :Het is geschikt als verzamelcontainer en kan meerdere testcase-objecten en meerdere testsuites-objecten bevatten
  • TestLoader-klasse :Deze klasse laadt testgevallen en suites die lokaal of vanuit een extern bestand zijn gedefinieerd. Het zendt een testsuite-object uit dat deze suites en cases bezit
  • TextTestRunner-klasse :Om de tests uit te voeren, wordt een standaardplatform gebruikt om de tests uit te voeren
  • De klasse TestResults :Het biedt een standaardcontainer voor de testresultaten

Een testcase ontwerpen voor Python-testen met PyUnit

Een unit-test biedt een basisklasse, testcase, die kan worden gebruikt om nieuwe testcases te maken. Voor het ontwerpen van de testcase zijn er drie sets methoden die worden gebruikt:

unittest.TestCase

setUp()
teardown()

skipTest(aMesg:string)
fail(aMesg:string)

id():string
shortDescription():string

In de eerste set zitten de pre- en post-testhaken. De setup()-methode begint voor elke testroutine, de teardown() na de routine.

De tweede set methodes regelt de uitvoering van de test. Beide methoden nemen een berichtreeks als invoer en beide annuleren een lopende test. Maar de methode skiptest() breekt de huidige test af, terwijl de methode fail() er volledig voor faalt.

De laatste of derde methode helpt bij het bepalen van de test. De methode id() retourneert een string die bestaat uit de naam van het testcase-object en van de testroutine. En de methode shortDescription() retourneert de docstr-commentaar bij het begin van elke testroutine.

Voordelen van het gebruik van Python Unit testing

  • Het helpt je om bugs vroeg in de ontwikkelingscyclus te detecteren
  • Het helpt je om betere programma's te schrijven
  • Het synchroniseert gemakkelijk met andere testmethoden en tools
  • Het zal veel minder bugs bevatten
  • Het is in de toekomst gemakkelijker te wijzigen met minder gevolgen

Python

  1. C# Abstract Class-zelfstudie met voorbeeld:wat is abstractie?
  2. Gecodeerde UI Test Automation Framework-zelfstudie
  3. Python String strip() Functie met VOORBEELD
  4. Python String count() met VOORBEELDEN
  5. Python round() functie met VOORBEELDEN
  6. Python map() functie met VOORBEELDEN
  7. Python Timeit() met voorbeelden
  8. Opbrengst in Python-zelfstudie:voorbeeld van generator en rendement versus rendement
  9. Python-teller in verzamelingen met voorbeeld
  10. Python Lijst index() met Voorbeeld
  11. Python - Extensie programmeren met C