Jetpack Compose Academy · Oppitunti

Semantiikka ja testitunnisteet

Tehkää käyttöliittymästä testattava ja saavutettava.

Oppitunti 3/413 vaihetta

Semantiikka ja testitunnisteet on ilmainen Jetpack Compose Academy-oppitunti CoddyKitissä. Tämä on oppitunti 3/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 Jetpack Compose Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Jetpack Compose Academy-kurssilla on yhteensä 4 oppituntia.

Semantiikkapuu

Compose rakentaa visuaalisen puun rinnalle semantiikkapuun. Se kuvaa, mitä kukin elementti tarkoittaa, ja juuri tätä puuta sekä testit että ruudunlukijat lukevat.

Miksi semantiikalla on merkitystä

Jos solmulla ei ole puussa merkitystä, finderit eivät voi saavuttaa sitä eikä TalkBack voi ilmoittaa sitä. Hyvä semantiikka tekee sovelluksesta sekä testattavan että saavutettavan. ♿

contentDescription lisää merkityksen

Kuvakkeissa ja kuvissa ei ole tekstiä, joten anna niille contentDescription. Se syötetään semantiikkapuuhun, jolloin testit voivat löytää ne ja ruudunlukijat kuvailla ne.

Icon(Icons.Default.Add,
    contentDescription = "Add item")

Kun teksti ei ole yksilöllinen

Joskus monilla solmuilla on sama teksti ja tekstihaku joutuu sekaisin. Tarvitset vakaan tunnisteen, joka ei riipu näkyvästä tunnisteesta.

testTag-tunnisteen esittely

testTag on näkymätön tunniste, jonka liität Modifierilla. Se antaa solmulle testeissä yksilöllisen nimen vaikuttamatta sen ulkoasuun.

Box(Modifier.testTag("avatar"))

Tunnisteella etsiminen

Kun solmulla on tunniste, paikanna se onNodeWithTag-funktiolla. Tämä toimii luotettavasti silloinkin, kun teksti muuttuu kielen tai tilan mukaan.

composeTestRule.onNodeWithTag("avatar")
    .assertIsDisplayed()

Pikakysymys

Useilla painikkeilla on tunniste Done, joten tekstihaku on epäselvä. Mikä antaa yhdelle painikkeelle yksilöllisen, näkymättömän tunnisteen testausta varten?

Tunnisteet ja kuvaukset

Pidä ne erillään: contentDescription palvelee oikeita käyttäjiä, kun taas testTag on tarkoitettu vain testeille. Älä käytä toista korvaamaan toisen tehtävää.

semantics-modifier

Täyden hallinnan saavuttamiseksi semantics-modifierilla voit määrittää mukautettuja ominaisuuksia, kuten merkitä solmun otsikoksi saavutettavuustyökaluja varten.

Modifier.semantics { heading() }

Jälkeläisten yhdistäminen

Compose voi yhdistää ylätason solmun lapsineen yhdeksi solmuksi mergeDescendants-asetuksella. Tällöin koko rivi ilmoitetaan yhtenä selkeänä kokonaisuutena.

Modifier.semantics(mergeDescendants = true) {}

Tulosta puu vianmääritystä varten

Etkö löydä solmua? Kutsu juurisolmulle printToLog-funktiota tulostaaksesi koko semantiikkapuun ja tarkista sitten, mitä tarkalleen on mahdollista hakea.

rule.onRoot().printToLog("TREE")

Suunnittele testattavaksi

Kun lisäät selkeät kuvaukset ja tunnisteet jo rakentaessasi sovellusta, testit kirjoittuvat melkein itsestään. Saavutettavat ja testattavat sovellukset perustuvat samoihin tapoihin.

Kertaus: semantiikka ja tunnisteet

Semantiikkapuu tukee sekä testausta että saavutettavuutta. Käytä käyttäjille contentDescription-ominaisuutta ja testeille testTag-tunnistetta, jotta käyttöliittymäsi on helppo tarkistaa. 🌳

Aloita maksutta

Opi Kotlin 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
30
Oppitunnit
120

Usein kysytyt kysymykset

Onko oppitunti ”Semantiikka ja testitunnisteet” ilmainen?

Kyllä – oppitunnin ”Semantiikka ja testitunnisteet” 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 Jetpack Compose Academy-kurssin, päivitä CoddyKit PROhon. Jetpack Compose Academy-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Semantiikka ja testitunnisteet”?

Tehkää käyttöliittymästä testattava ja saavutettava. Harjoittelet Jetpack Compose Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Jetpack Compose Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Jetpack Compose Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/4.

Kuinka kauan ”Semantiikka ja testitunnisteet”-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ä Jetpack Compose Academy-oppitunnilla?

Kyllä. Jokainen Jetpack Compose Academy-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

  1. createComposeRule ja etsijät
  2. Tarkistukset ja toimintojen suorittaminen
  3. Semantiikka ja testitunnisteet
  4. ViewModelien ja Flow-virtojen testaaminen
← Takaisin: Jetpack Compose Academy