PropertyDescriptorTester
PropertyDescriptorTester webforJ:ssä helpottaa kolmannen osapuolen web-komponenttien testiä, jotka on integroitu sovellukseesi. Se validoi, että PropertyDescriptor:illa määritellyt ominaisuudet on oikein liitetty niiden hakija- ja asettajametodeihin, ja varmistaa, että oletus käyttäytyminen käsitellään johdonmukaisesti. Tämä työkalu on erityisen hyödyllinen kolmannen osapuolen komponenttien paljastamien ominaisuuksien toiminnallisuuden vahvistamiseen ilman toistuvaa testilogiikkaa.
Yleiskatsaus
Kun työskentelet kolmannen osapuolen web-komponenttien kanssa, on tärkeää varmistaa, että ominaisuudet käyttäytyvät odotetusti. PropertyDescriptorTester automatisoi tämän prosessin validoimalla, että ominaisuudet:
- On oikein liitetty niiden hakija- ja asettajametodeihin.
- Säilyttävät odotetut oletusarvot ja mukautetut käyttäytymiset.
- Vältetään yleisiä integraatio-ongelmia, kuten epäsopivia ominaisuuden nimiä tai epäjohdonmukaisia oletuksia.
Työkalu tukee annotaatioita monimutkaisemmille käyttötilanteille, kuten merkityksettömien ominaisuuksien ulkopuolelle jättämiselle tai mukautettujen hakija- ja asettajametodien määrittämiselle, mikä tekee siitä monipuolisen vaihtoehdon integraatiotesteille.
Kuinka PropertyDescriptorTester toimii
Testausprosessi sisältää useita automatisoituja vaiheita:
-
Luokan skannaus:
PropertyDescriptorScannertunnistaa kaikkiPropertyDescriptor-kentät komponenttiluokassa, ja jättää automaattisesti pois kentät, joilla on annotaatio@PropertyExclude. -
Menetelmien ratkaisu: Vakiokäyttäjä- ja asettajametodit havaitaan nimikäytäntöjen perusteella (
get<PropertyName>/set<PropertyName>). Epästandardeissa toteutuksissa annotaatiot kuten@PropertyMethodsmäärittelevät mukautetut metodin nimet tai kohdeluokat. -
Validointi: Oletusarvot asetetaan asettajametodin avulla, haetaan hakijametodilla ja verrataan oikeellisuuden varmistamiseksi. Kaikki epäyhtenäisyys laukaisee
AssertionError-virheen, joka korostaa erityistä ongelmaa. -
Virheiden raportointi: Testeri tarjoaa yksityiskohtaista palautetta kaikista vahvistusvirheistä, kuten puuttuvista metodeista, epäjohdonmukaisista oletuksista tai ominaisuuden vääristä konfiguraatioista.
Testien kirjoittaminen PropertyDescriptorTester-kanssa
Tässä on esimerkki, joka demonstroi perusominaisuuksien vahvistamista AppLayout-komponentille:
Esimerkki: Perusvalidointi
public class MyComponent extends ElementCompositeContainer {
private final PropertyDescriptor<Boolean> drawerOpened =
PropertyDescriptor.property("drawerOpened", false);
private final PropertyDescriptor<String> headerTitle =
PropertyDescriptor.property("headerTitle", "Oletusotsikko");
// asetukset ja haku
}
Testitapaus
import com.webforj.component.element.PropertyDescriptorTester;
import org.junit.jupiter.api.Test;
class MyComponentTest {
MyComponent component = new MyComponent();
@Test
void validateProperties() {
try {
PropertyDescriptorTester.run(MyComponent.class, component);
} catch (Exception e) {
fail("PropertyDescriptor-testi epäonnistui: " + e.getMessage());
}
}
}
Tämä testi vahvistaa automaattisesti:
- Sen, että
drawerOpened-ominaisuudella on voimassa olevat hakija- ja asettajametodit. - Sen, että
headerTitleoletusarvo on"Oletusotsikko".
Monimutkaiset käyttötilanteet annotaatioilla
Monimutkaisempia skenaarioita varten PropertyDescriptorTester tukee annotaatioita ominaisuuksien mukauttamiseen tai testaamisesta sulkemiseen.
Poista ominaisuudet käytöstä @PropertyExclude-annotaatiolla
Poista käytöstä ominaisuudet, jotka riippuvat ulkoisista järjestelmistä tai eivät ole relevantteja testille. Esimerkiksi:
@PropertyExclude
private final PropertyDescriptor<String> excludedProperty =
PropertyDescriptor.property("excludedProperty", "Poissuljettu");
Mukauta metodeja @PropertyMethods-annotaatiolla
Määritä mukautettu hakija, asettaja tai kohdeluokka, kun oletusnimisäännöt eivät päde:
@PropertyMethods(getter = "retrieveValue", setter = "updateValue", target = InnerClass.class)
private final PropertyDescriptor<String> customProperty =
PropertyDescriptor.property("customProperty", "Oletusarvo");