Sobes.tech
Junior — Middle

Ποια είναι τα διαφορές μεταξύ των εκδόσεων JUnit 4 και JUnit 5 στο πλαίσιο των δοκιμών;

sobes.tech AI

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

Οι βασικές διαφορές μεταξύ JUnit 4 και JUnit 5:

  • Αρχιτεκτονική: Το JUnit 5 αποτελείται από πολλαπλά modules (JUnit Platform, JUnit Jupiter, JUnit Vintage), που επιτρέπουν την εκτέλεση δοκιμών διαφορετικών εκδόσεων και την επέκταση της λειτουργικότητας. Το JUnit 4 είναι μονολιθικό.

  • Σημειώσεις:

    • Στο JUnit 5 εισήχθησαν νέες σημειώσεις: @BeforeEach αντί για @Before, @AfterEach αντί για @After, @BeforeAll αντί για @BeforeClass, @AfterAll αντί για @AfterClass.
    • Το @Test στο JUnit 5 υποστηρίζει νέες δυνατότητες, όπως τον καθορισμό αναμενόμενων εξαιρέσεων μέσω του assertThrows αντί για το παράμετρο της σημείωσης.
  • Επεκτασιμότητα: Το JUnit 5 προσφέρει ένα επεκτάσιμο μοντέλο επεκτάσεων (Extension API), που αντικαθιστά τους κανόνες και τους τρέχοντες του JUnit 4.

  • Υποστήριξη για εκφράσεις lambda και Java 8+: Το JUnit 5 χρησιμοποιεί τις δυνατότητες της Java 8, διευκολύνοντας τη συγγραφή δοκιμών και βελτιώνοντας την αναγνωσιμότητα.

  • Δοκιμές παραμετροποίησης: Η υποστήριξη για δοκιμές παραμετροποίησης βελτιώθηκε στο JUnit 5 με πιο ευέλικτες πηγές δεδομένων.

Παράδειγμα μιας απλής δοκιμής στο JUnit 5:

import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;

class CalculatorTest {
    @Test
    void addition() {
        assertEquals(2, 1 + 1);
    }
}

Το JUnit 5 είναι πιο σύγχρονο και ευέλικτο, προτείνεται για νέα έργα, αλλά το JUnit 4 εξακολουθεί να χρησιμοποιείται ευρέως και υποστηρίζεται.