Hamcrestovi zajednički jezgri

1. Pregled

U ovom brzom vodiču istražit ćemo CoreMatchers klase iz popularnog Hamcrestova okvira za pisanje jednostavnih i izražajnijih test slučajeva.

Ideja je natjerati tvrdnje da se čitaju kao prirodni jezik.

2. Hamcrest postavljanje

Hamcrest možemo koristiti s Mavenom dodavanjem sljedeće ovisnosti našoj pom.xml datoteka:

 org.hamcrest java-hamcrest 2.0.0.0 test 

Najnoviju verziju ove knjižnice uvijek možete pronaći ovdje.

3. Uobičajena podudaranja jezgre

3.1. je (T) i je (podudaranje)

The je (T) uzima objekt kao parametar za provjeru jednakosti i je (podudaranje) uzima još jedno podudaranje dopuštajući da izjava o jednakosti bude izražajnija.

To možemo koristiti s gotovo svim metodama:

String testString = "jezgra hamcrest-a"; assertThat (testString, is ("hamcrest core")); assertThat (testString, is (jednakTo ("jezgra hamcrest-a")));

3.2. jednakTo (T)

The jednakTo (T) uzima objekt kao parametar i provjerava njegovu jednakost prema drugom objektu. Ovo se često koristi s je (podudaranje):

String actualString = "jednak za podudaranje"; Popis actualList = Lists.newArrayList ("jednakTo", "podudaranje"); assertThat (actualString, is (jednakTo ("jednakTo se podudara"))); assertThat (actualList, is (jednakTo (Lists.newArrayList ("jednakTo", "podudaranje"))));

Možemo i koristiti jednakToObjekt (operativni objekt) - koji provjerava jednakost i ne provodi da dva objekta trebaju biti istog statičkog tipa:

Izvornik objekta = 100; assertThat (original, jednakToObjekt (100));

3.3. ne (T) i ne (podudaranje)

The ne (T) i ne (podudaranje) koriste se za provjeru nejednakosti zadanih objekata. Prvo uzima objekt kao argument, a drugo uzima drugo podudaranje:

String testString = "kraljevstvo Troja"; assertThat (testString, not ("njemačko kraljevstvo")); assertThat (testString, is (not (jednakTo ("njemačko kraljevstvo")))); assertThat (testString, is (not (instanceOf (Integer.class)))));

3.4. nullValue () i nullValue (klasa)

The nullValue () provjeri za null vrijednost prema ispitivanom predmetu. The nullValue (klasa) provjerava null za dani objekt tipa klase:

Cijeli broj nullObject = null; assertThat (nullObject, je (nullValue ())); assertThat (nullObject, is (nullValue (Integer.class))));

3.5. notNullValue () i notNullValue (klasa)

Ovo su prečaci do često korištenih je (nije (nullValue)). Oni provjeravaju ne-null-jednakost objekta ili tipa klase:

Cijeli broj testNumber = 123; assertThat (testNumber, is (notNullValue ())); assertThat (testNumber, is (notNullValue (Integer.class)));

3.6. instanceOf (klasa)

The instanceOf (klasa) podudara se ako je ispitivani objekt instanca navedenog Razredtip.

Za provjeru, ova metoda interno pozivaisIntance (objekt) od Razred razred:

assertThat ("instanceOf example", je (instanceOf (String.class)));

3.7. je(Vrsta klase)

The isA (vrsta klase) je prečac do gore navedenog instanceOf (klasa). Potrebna je potpuno ista vrsta argumenta kao i instanceOf (klasa):

assertThat ("Drogon je najveći zmaj", isA (String.class));

3.8. sameInstance ()

The sameInstance () podudara se ako dvije referentne varijable usmjeravaju na isti objekt u hrpi:

Niz string1 = "Viseron"; Niz string2 = string1; assertThat (string1, is (sameInstance (string2)));

3.9. bilo koji (klasa)

The bilo koji (klasa)provjerava je li klasa iste vrste kao stvarni objekt:

assertThat ("test string", je (bilo koji (String.class))); assertThat ("test niz", je (bilo koji (Object.class)));

3.10. allOf (Matcher…) i anyOf (Matcher…)

Možemo koristiti allOf (Matcher ...) tvrditi da li se stvarni objekt podudara sa svim navedenim uvjetima:

String testString = "Ahil je moćan"; assertThat (testString, allOf (startWith ("Achi"), endsWith ("ul"), containsString ("Achilles")));

The anyOf (Matcher ...) ponaša se kao allOf (Matcher…) ali se podudara ako ispitivani objekt ispunjava bilo koji od navedenih uvjeta:

String testString = "Hector je ubio Ahila"; assertThat (testString, anyOf (startWith ("Hec"), containsString ("baeldung")));

3.11. hasItem (T) i hasItem (Matcher)

Oni se podudaraju ako se ispita Iterativ prikupljanje podudaranja s danim predmetom ili podudaranjem unutar hasItem () ili hasItem (Matcher).

Da shvatimo kako ovo funkcionira:

Popis popisa = Lists.newArrayList ("java", "spring", "baeldung"); assertThat (list, hasItem ("java")); assertThat (list, hasItem (isA (String.class))));

Slično tome, možemo i mi tvrditi protiv više od jedne stavke pomoću hasItems (T…) i hasItems (Matcher…):

Popis popisa = Lists.newArrayList ("java", "spring", "baeldung"); assertThat (list, hasItems ("java", "baeldung")); assertThat (list, hasItems (isA (String.class), ENDWith ("ing")));

3.12. i (Matcher) i bilo koji (Matcher)

Kao što i samo ime govori, oboje (podudaranje) podudara se kada se oba navedena uvjeta podudaraju s ispitivanim objektom:

String testString = "daenerys targaryen"; assertThat (testString, oboje (startWith ("daene")). i (containsString ("jen")));

i bilo (podudaranje)podudara se kada se bilo koji od navedenih uvjeta podudara s ispitivanim objektom:

String testString = "daenerys targaryen"; assertThat (testString, ili (startWith ("tar")). ili (containsString ("targaryen")));

4. Niz Usporedba

Možemo koristiti containsString (String) ili containsStringIgnoringCase (String) da se utvrdi sadrži li stvarni niz testni niz:

String testString = "Rhaegar Targaryen"; assertThat (testString, containsString ("aegar")); assertThat (testString, containsStringIgnoringCase ("AEGAR"));

Ili startWith (String) i startWithIgnoringCase (String) da se utvrdi započinje li stvarni niz testnim nizom:

assertThat (testString, startWith ("Rhae")); assertThat (testString, startWithIgnoringCase ("rhae"));

Možemo i koristiti završava s (niz) ili endsWithIgnoringCase (niz) tvrditi da li stvarni niz završava testnim nizom:

assertThat (testString, endsWith ("aryen")); assertThat (testString, endsWithIgnoringCase ("ARYEN"));

5. Zaključak

U ovom smo članku razgovarali o različitim metodama CoreMatchers razred u Hamcrest knjižnica.

Kao i uvijek, izvorni kod za primjere možete pronaći na GitHubu.


$config[zx-auto] not found$config[zx-overlay] not found