Sobes.tech
Junior

Ποια είναι η διαφορά μεταξύ μονάδων δοκιμών και δοκιμών ολοκλήρωσης;

sobes.tech AI

Απάντηση από AI

Οι μονάδες δοκιμών και οι δοκιμές ολοκλήρωσης διαφέρουν σε επίπεδο κάλυψης και στόχων:

  • Μονάδες δοκιμών ελέγχουν ξεχωριστά, απομονωμένα τμήματα του κώδικα — συνήθως συναρτήσεις ή μεθόδους. Δεν εξαρτώνται από εξωτερικά συστήματα (βάσεις δεδομένων, δίκτυα κ.λπ.) και εκτελούνται γρήγορα. Στόχος είναι να διασφαλιστεί ότι ένα συγκεκριμένο module λειτουργεί σωστά.

  • Δοκιμές ολοκλήρωσης ελέγχουν την αλληλεπίδραση πολλαπλών συστατικών ή modules μαζί. Μπορούν να χρησιμοποιούν πραγματικές βάσεις δεδομένων, υπηρεσίες και άλλες εξωτερικές εξαρτήσεις. Στόχος είναι να διασφαλιστεί ότι τα συστατικά λειτουργούν σωστά μαζί.

Παράδειγμα σε Go:

// Μονάδα δοκιμής μιας λειτουργίας
func TestAdd(t *testing.T) {
    result := Add(2, 3)
    if result != 5 {
        t.Errorf("Αναμενόμενο 5, πήρα %d", result)
    }
}

// Δοκιμή ολοκλήρωσης με βάση δεδομένων
func TestUserCreation(t *testing.T) {
    db := setupTestDB()
    userService := NewUserService(db)
    err := userService.CreateUser("testuser")
    if err != nil {
        t.Fatal(err)
    }
    // Ελέγχουμε ότι ο χρήστης δημιουργήθηκε πραγματικά στη βάση δεδομένων
}

Έτσι, οι μονάδες δοκιμών εστιάζουν στη λογική, ενώ οι δοκιμές ολοκλήρωσης στην αλληλεπίδραση των συστατικών.