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.