Μονάδα-Δοκιμές είναι ένα ισχυρό εργαλείο για τους προγραμματιστές, ώστε να εξασφαλίσουν την ποιότητα του κώδικα τους. Σου επιτρέπει να δοκιμάζεις λειτουργίες μεμονωμένα και να διασφαλίζεις ότι λειτουργούν όπως επιθυμείς. Σε αυτόν τον οδηγό, θα σου δείξω πώς να γράψεις την πρώτη σου μονάδα-δοκιμή σε Python. Θα μάθεις όχι μόνο τα Βασικά της μονάδας-δοκιμής, αλλά και πώς να δομήσεις τις δοκιμές σου αποδοτικά.

Σημαντικότερα ευρήματα

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

Οδηγίες βήμα προς βήμα

Βήμα 1: Προετοιμασία του έργου σου

Καταρχάς, χρειάζεσαι ένα αρχείο Python, στο οποίο ορίζεται η λειτουργία σου. Στο παράδειγμά μας, θα το ονομάσουμε preisberechnung.py. Εδώ, θα ορίσεις μια λειτουργία get_verkaufspreis που δέχεται την τιμή αγοράς και προσθέτει μια προμήθεια.

Python Unit-Test Βασικές Αρχές: Η είσοδός σου

Βήμα 2: Δημιουργήστε ένα αρχείο για τις μονάδα-δοκιμές σας

Στη συνέχεια, δημιουργήστε ένα νέο αρχείο που θα περιέχει τις δοκιμές για αυτή τη λειτουργία. Ας το ονομάσουμε preisberechnung_test.py. Εδώ θα εργαστείς με το module unittest.

Για να χρησιμοποιήσεις το framework, το εισάγεις στην αρχή του αρχείου σου:

import unittest
from preisberechnung import get_verkaufspreis
Python Unit-Test Βασικές Αρχές: Η Είσοδός σου

Βήμα 3: Ορίστε μια κλάση δοκιμής

Μια κλάση δοκιμής θα πρέπει να κληρονομήσει από unittest.TestCase. Αυτό σου επιτρέπει να οργανώνεις όλες τις δοκιμές σε μια δομημένη μορφή. Ονόμασε την κλάση σε PreisberechnungTest για να διευκρινίσεις τι δοκιμάζεται.

Python Unit-Test Βασικές Αρχές: Η Είσοδός σου

Βήμα 4: Γράψε τις δοκιμές σου

Τώρα είναι καιρός να γράψεις πραγματικές δοκιμές. Ξεκίνα με μια δοκιμή που ελέγχει αν η επιστροφή από το get_verkaufspreis έχει τον αναμενόμενο τύπο (float):

class PreisberechnungTest(unittest.TestCase): def test_preis_ist_float(self): vk = get_verkaufspreis(100) self.assertIsInstance(vk, float)
Python Unit-Test Βασικές Αρχές: Η Είσοδός Σου

Βήμα 5: Δοκιμάστε μη έγκυρες εισόδους

Είναι εξίσου σημαντικό να δοκιμάσεις μη έγκυρες εισόδους. Πρόσθεσε μια δοκιμή που ελέγχει αν η λειτουργία ρίχνει μια εξαίρεση με μη έγκυρες εισόδους, όπως None ή μια συμβολοσειρά:

def test_invalid_input(self): with self.assertRaises(TypeError): get_verkaufspreis("invalid")
Python Unit-Test Βασικές αρχές: Η είσοδός σου

Βήμα 6: Εκτέλεσε τις δοκιμές

Για να εκτελέσεις τις δοκιμές σου, μπορείς να το κάνεις είτε μέσω του τερματικού είτε απευθείας στην IDE σου. Εάν χρησιμοποιείς το τερματικό, εκτέλεσε το παρακάτω:

python -m unittest preisberechnung_test.py

Στην IDE σου, όπως το PyCharm, μπορείς να χρησιμοποιήσεις τη ρύθμιση εκτέλεσης για να εκτελέσεις τις δοκιμές.

Python Unit-Test Βασικές Αρχές: Η είσοδός σου

Βήμα 7: Ελέγξτε τα αποτελέσματα

Αν οι δοκιμές εκτελούνται επιτυχώς, θα λάβεις μια έξοδο που δείχνει αν όλες οι δοκιμές πέρασαν. Ένα πράσινο αποτέλεσμα σημαίνει ότι ο κώδικάς σου λειτουργεί όπως προορίζεται.

Βήμα 8: Επέκταση δοκιμών

Εκτός από τις βασικές δοκιμές, μπορείς να προσθέσεις και άλλα σχετικά σενάρια για να αυξήσεις την ασφάλεια του κώδικα. Σκέψου να δοκιμάσεις τόσο θετικές όσο και αρνητικές περιπτώσεις για να διασφαλίσεις ότι η λογική σου λειτουργεί σε όλες τις καταστάσεις.

Python Unit-Test Βασικές Αρχές: Η είσοδός σου

Σύνοψη - Πρώτη μονάδα-δοκιμή με Python: Βασικά και Υλοποίηση

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

Συχνές ερωτήσεις

Πώς μπορώ να δημιουργήσω μια μονάδα-δοκιμή σε Python;Για να δημιουργήσεις μια μονάδα-δοκιμή σε Python, δημιούργησε μια κλάση δοκιμής που κληρονομεί από το unittest.TestCase και γράψε τις δοκιμές ως μεθόδους αυτής της κλάσης.

Γιατί πρέπει να γράψω μονάδα-δοκιμές;Οι μονάδα-δοκιμές βοηθούν στην πρώιμη αναγνώριση σφαλμάτων και διασφαλίζουν ότι οι λειτουργίες σου λειτουργούν όπως επιθυμείς.

Πώς εκτελώ τις μονάδα-δοκιμές;Μπορείς να εκτελέσεις τις μονάδα-δοκιμές μέσω του τερματικού με python -m unittest [όνομα αρχείου] ή απευθείας στην IDE σου.

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