Sobes.tech
Junior — Middle

Ի՞նչ տարբերություններ կան JUnit 4 և JUnit 5 տարբերակների միջև թեստավորման համատեքստում։

sobes.tech AI

Պատասխան AI-ից

Հիմնական տարբերությունները JUnit 4 և JUnit 5 միջև՝

  • Արքիտեկտուրա՝ JUnit 5-ը բաղկացած է մի քանի մոդուլներից (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-ը դեռ լայնորեն օգտագործվում է և աջակցվում է։