Testifikstuurit ja jaettu testikoodi
Käytä java-test-fixtures-pluginia jaettavien testiapureiden, builderien ja feikkien hyödyntämiseen moduulien välillä ilman, että ne vuotavat tuotantokoodiin.
Testifikstuurit ja jaettu testikoodi on ilmainen Groovy ja Gradle: JVM-automaatiota ja koontien hallintaa-oppitunti CoddyKitissä. Tämä on oppitunti 4/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Groovy ja Gradle: JVM-automaatiota ja koontien hallintaa-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Groovy ja Gradle: JVM-automaatiota ja koontien hallintaa-kurssilla on yhteensä 4 oppituntia.
Jaetun testikoodin ongelma
Useat moduulit tarvitsevat usein samoja testiavustajia, kuten builder-objekteja, feikkejä ja testivakioita. Niiden kopioiminen ja liittäminen on hauraista, ja niiden sijoittaminen tuotantokoodiin tuo vain testeissä tarvittavat luokat tuotantoon.
Testivakioiden käyttöönotto
Gradle sisältää java-test-fixtures-liitännäisen, joka lisää erillisen testFixtures-lähdejoukon. Sen koodia voivat käyttää muiden moduulien testit.
plugins {
id("java-library")
id("java-test-fixtures")
}Lähdejoukkojen rakenne
Liitännäinen luo hakemiston src/testFixtures/java. Sen luokat käännetään erikseen ja paketoidaan testivakioartefaktiksi.
src/maintuotantokoodisrc/testtestitsrc/testFixturesjaetut testiavustajat
Testivakion kirjoittaminen
Sijoittakaa uudelleenkäytettävät builderit testivakioiden lähdejoukkoon. Ne voivat riippua moduulin pääkoodin luokista.
public class UserBuilder {
public static User aUser() {
return new User("test", 42);
}
}Testivakioiden käyttäminen moduulin sisällä
Moduulin omat testit näkevät sen testivakiot automaattisesti, eikä lisämäärityksiä tarvita.
@Test
void usesFixture() {
User u = UserBuilder.aUser();
assertEquals(42, u.getId());
}Testivakioiden käyttäminen moduulien välillä
Toinen moduuli ilmoittaa riippuvuuden testivakioihin testFixtures()-apuohjelmalla.
dependencies {
testImplementation(testFixtures(project(":core")))
}Testivakioiden riippuvuudet
Testivakiot voivat määrittää omat riippuvuutensa testFixturesImplementation-määrityksellä, joka pidetään erillään tuotantoriippuvuuksista.
dependencies {
testFixturesImplementation("org.assertj:assertj-core:3.25.0")
}Miksi main-koodia ei pitäisi käyttää?
Testiavustajien sijoittaminen kohteeseen main vuotaa ne julkaistuun JAR-tiedostoon ja tuotannon classpathiin, mikä kasvattaa kokoa ja riskejä. Testivakiot pitävät ne erillään.
Testivakioiden julkaiseminen
Testivakioartefakti voidaan julkaista pää-JAR-tiedoston rinnalla, jolloin myös muiden repositorioiden myöhemmät käyttäjät voivat hyödyntää niitä.
gradle publishVertailu erilliseen moduuliin
Voisitte luoda erillisen testiavustajamoduulin, mutta testivakiot poistavat ylimääräisen moduulin tarpeen, pitävät avustajat tuettavan koodin lähellä ja käyttävät selkeää nimeämiskäytäntöä.
Parhaat käytännöt
Pidä testivakiot rajattuina:
- Sijoita niihin vain aidosti uudelleenkäytettäviä avustajia
- Vältä testivakioiden vuotamista vahingossa main-koodiin
- Nimeä builderit ja feikit selkeästi
Pikatarkistus
Testaa ymmärryksesi testivakioista.
Kertaus
Opit testivakioista:
- Ota käyttöön
java-test-fixtures - Sijoita jaetut avustajat kohteeseen
src/testFixtures - Käytä niitä komennolla
testFixtures(project(...)) - Pidä vain testeissä tarvittava koodi poissa tuotantoartefakteista
Opi Groovy tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 12
- Oppitunnit
- 48
Usein kysytyt kysymykset
Onko oppitunti ”Testifikstuurit ja jaettu testikoodi” ilmainen?
Kyllä – oppitunnin ”Testifikstuurit ja jaettu testikoodi” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Groovy ja Gradle: JVM-automaatiota ja koontien hallintaa-kurssin, päivitä CoddyKit PROhon. Groovy ja Gradle: JVM-automaatiota ja koontien hallintaa-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Testifikstuurit ja jaettu testikoodi”?
Käytä java-test-fixtures-pluginia jaettavien testiapureiden, builderien ja feikkien hyödyntämiseen moduulien välillä ilman, että ne vuotavat tuotantokoodiin. Harjoittelet Groovy ja Gradle: JVM-automaatiota ja koontien hallintaa-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Groovy ja Gradle: JVM-automaatiota ja koontien hallintaa-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Groovy ja Gradle: JVM-automaatiota ja koontien hallintaa-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 4/4.
Kuinka kauan ”Testifikstuurit ja jaettu testikoodi”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Groovy ja Gradle: JVM-automaatiota ja koontien hallintaa-oppitunnilla?
Kyllä. Jokainen Groovy ja Gradle: JVM-automaatiota ja koontien hallintaa-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Yksikkö- ja integraatiotestaus
- Testiraportit ja suodatus
- Kattavuus ja staattinen analyysi
- Testifikstuurit ja jaettu testikoodi