Εκμάθηση PyUnit: Python Unit Testing Framework (με Παράδειγμα)

Τι είναι το Unit Testing;

Δοκιμή μονάδας in Python γίνεται για τον εντοπισμό σφαλμάτων νωρίς στο στάδιο ανάπτυξης της εφαρμογής όταν τα σφάλματα είναι λιγότερο επαναλαμβανόμενα και λιγότερο δαπανηρά να διορθωθούν.

Μια δοκιμή μονάδας είναι μια δοκιμή επιπέδου κώδικα σενάριο που έχει σχεδιαστεί σε Python για να επαληθεύσετε μια μικρή «μονάδα» λειτουργικότητας. Η δοκιμή μονάδας είναι ένα αντικειμενοστρεφές πλαίσιο που βασίζεται σε εξαρτήματα δοκιμής.

Python Τεχνικές Δοκιμών Μονάδων

Python Η δοκιμή μονάδας περιλαμβάνει κυρίως τη δοκιμή μιας συγκεκριμένης ενότητας χωρίς πρόσβαση σε εξαρτώμενο κώδικα. Οι προγραμματιστές μπορούν να χρησιμοποιήσουν τεχνικές όπως στελέχη και μακέτες για να διαχωρίσουν τον κώδικα σε "μονάδες" και να εκτελέσουν δοκιμές σε επίπεδο μονάδας στα μεμονωμένα κομμάτια.

  • TDD ανάπτυξης βάσει δοκιμής: Η δοκιμή μονάδας πρέπει να γίνεται μαζί με το Python, και για αυτό οι προγραμματιστές χρησιμοποιούν τη μέθοδο ανάπτυξης βάσει δοκιμής. Στη μέθοδο TDD, πρώτα σχεδιάζετε Python Η μονάδα δοκιμάζει και μόνο τότε συνεχίζετε να γράφετε τον κώδικα που θα εφαρμόσει αυτήν τη δυνατότητα.
  • Στελέχη και κοροϊδίες: Είναι δύο κύριες τεχνικές που προσομοιώνουν ψεύτικες μεθόδους που δοκιμάζονται. ΕΝΑ Στέλεχος χρησιμοποιείται για να συμπληρώσει κάποια εξάρτηση που απαιτείται για τη σωστή εκτέλεση της δοκιμής μονάδας. ΕΝΑ Κοροϊδεύω από την άλλη είναι ένα ψεύτικο αντικείμενο που εκτελεί τις δοκιμές όπου βάζουμε επιβεβαίωση.

    Οι προθέσεις και των δύο μεθόδων είναι οι ίδιες για την εξάλειψη της δοκιμής όλων των εξαρτήσεων μιας κλάσης ή μιας συνάρτησης.

Python Πλαίσιο δοκιμών μονάδων

Για να διευκολύνετε τη διαδικασία δοκιμής μονάδας και να βελτιώσετε την ποιότητα του έργου σας, συνιστάται η Python Πλαίσιο δοκιμών μονάδων. Το πλαίσιο δοκιμής μονάδας περιλαμβάνει

Python Τεχνικές Δοκιμών Μονάδων

  • PyUnit: Το PyUnit υποστηρίζει φωτιστικά, περιπτώσεις δοκιμών, σουίτες δοκιμών και δοκιμαστικό πρόγραμμα για την αυτοματοποιημένη δοκιμή του κώδικα. Στο PyUnit, μπορείτε να οργανώσετε δοκιμαστικές περιπτώσεις σε σουίτες με τα ίδια φωτιστικά
  • Μύτη: Τα ενσωματωμένα πρόσθετα του Nose σάς βοηθούν με τη λήψη εξόδου, την κάλυψη κώδικα, τις δοκιμές εγγράφων κ.λπ. Η σύνταξη της μύτης είναι αρκετά απλούστερη και μειώνει τα εμπόδια στη σύνταξη δοκιμών. Εκτείνεται Python unittest για ευκολότερη δοκιμή.
  • Doctest: Το σενάριο δοκιμής Doctest πηγαίνει σε docstring με μικρή λειτουργία στο κάτω μέρος του αρχείου. Το Doctest σάς επιτρέπει να δοκιμάσετε τον κώδικά σας εκτελώντας παραδείγματα που περιλαμβάνονται στην τεκμηρίωση και επαληθεύοντας ότι επέστρεψαν τα αναμενόμενα αποτελέσματα. Η περίπτωση χρήσης του doctest είναι λιγότερο λεπτομερής και δεν υπάρχουν ειδικές περιπτώσεις. Είναι χρήσιμα ως εκφραστική τεκμηρίωση της κύριας περίπτωσης χρήσης μιας ενότητας και των στοιχείων της.

Δοκιμή μονάδας με PyUnit

Το Pyunit είναι ένα Python λιμάνι του JUnit. Ως μέρος του Pyunit, στην ενότητα δοκιμής μονάδας υπάρχουν πέντε βασικές κατηγορίες.

Δοκιμή μονάδας με PyUnit

  • Τάξη TestCase: Η κλάση TestCase φέρει τις ρουτίνες δοκιμών και παρέχει γάντζους για την πραγματοποίηση κάθε ρουτίνας και τον καθαρισμό στη συνέχεια
  • Τάξη TestSuite: Εξυπηρετεί ως κοντέινερ συλλογής και μπορεί να διαθέτει πολλαπλά αντικείμενα δοκιμαστικής θήκης και πολλαπλά αντικείμενα δοκιμαστικών σουιτών
  • Κλάση TestLoader: Αυτή η κλάση φορτώνει δοκιμαστικές περιπτώσεις και σουίτες που ορίζονται τοπικά ή από εξωτερικό αρχείο. Εκπέμπει αντικείμενα δοκιμαστικής σουίτας που διαθέτει αυτές τις σουίτες και θήκες
  • Κλάση TextTestRunner: Για την εκτέλεση των δοκιμών, εξυπηρετεί μια τυπική πλατφόρμα για την εκτέλεση των δοκιμών
  • Η τάξη TestResults: Προσφέρει ένα τυπικό δοχείο για τα αποτελέσματα των δοκιμών

Σχεδιασμός δοκιμαστικής θήκης για Python Δοκιμή χρησιμοποιώντας PyUnit

Μια δοκιμή μονάδας παρέχει μια βασική κατηγορία, δοκιμαστική περίπτωση, η οποία μπορεί να χρησιμοποιηθεί για τη δημιουργία νέων περιπτώσεων δοκιμής. Για το σχεδιασμό της δοκιμαστικής περίπτωσης, υπάρχουν τρία σετ μεθόδων που χρησιμοποιούνται

Σχεδιασμός δοκιμαστικής θήκης για Python

unittest.TestCase

setUp()
teardown()

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

id():string
shortDescription():string

Στο πρώτο σετ βρίσκονται τα αγκίστρια πριν και μετά τη δοκιμή. Η μέθοδος setup() ξεκινά πριν από κάθε δοκιμαστική ρουτίνα, η teardown() μετά τη ρουτίνα.

Το δεύτερο σύνολο μεθόδων ελέγχει την εκτέλεση της δοκιμής. Και οι δύο μέθοδοι λαμβάνουν μια συμβολοσειρά μηνύματος ως είσοδο και οι δύο ακυρώνουν μια τρέχουσα δοκιμή. Αλλά η μέθοδος skiptest() ματαιώνει την τρέχουσα δοκιμή ενώ η μέθοδος fail() την αποτυγχάνει εντελώς.

Η τελευταία ή η τρίτη μέθοδος βοηθούν στον προσδιορισμό του τεστ. Η μέθοδος id() επιστρέφει μια συμβολοσειρά που αποτελείται από το όνομα του αντικειμένου δοκιμής και της ρουτίνας δοκιμής. Και η μέθοδος σύντομηDescriptΗ ion() επιστρέφει το σχόλιο docstr κατά την έναρξη κάθε ρουτίνας δοκιμής.

Πλεονεκτήματα της χρήσης Python Δοκιμή μονάδας

  • Σας βοηθά να εντοπίσετε σφάλματα νωρίς στον κύκλο ανάπτυξης
  • Σας βοηθά να γράφετε καλύτερα προγράμματα
  • Συγχρονίζεται εύκολα με άλλες μεθόδους και εργαλεία δοκιμών
  • Θα έχει πολύ λιγότερα σφάλματα
  • Είναι ευκολότερο να τροποποιηθεί στο μέλλον με πολύ λιγότερες συνέπειες