Java >> Java tutorial >  >> Tag >> package

Hvorfor JUnit 5 standardadgangsmodifikator blev ændret til pakke-privat

Hvorfor er standardadgangsmodifikatoren i JUnit 5-pakken privat?

Det er ikke "standard". Der er teknisk set ingen standard. I JUnit Jupiter har du snarere et valg:public , protected eller pakke-privat.

Hvad er fordelen ved at ændre det til pakke-privat?

Fordelen er, at du ikke har type public længere. Hvis din IDE automatisk genererer testmetoder og testklasser for dig, som er public , efterlad dem gerne public .

Men... hvis du selv indtaster metoderne, så lad være med public medmindre du designer dine testklasser til underklassificering fra andre pakker, i hvilket tilfælde du ønsker at gøre dine tilsidesættelige testmetoder enten public eller protected . Og selvfølgelig interface default metoder skal være public .

Lang historie, kort:vi (JUnit 5-teamet) tror på princippet "Less is more", hvilket betyder, at jo mindre du skal skrive for at nå dit mål, jo bedre!


Dette er JUnit 5-funktion, som giver en bedre indkapsling til testklasser og -metoder

Gør Jupiter-testpakke privat #679

Testklassen ligger for det meste i den samme pakke som den testede klasse:

bedre måde er at placere testene i en separat parallel mappestruktur med pakkejustering.

main/                          test/
   com/                           com/
      xyz/                           xyz/
          SomeClass.java               SomeClassTests.java

Denne tilgang tillader testkode at få adgang til alle offentlige og pakke synlige medlemmer af klasserne under test.


Java tag