Hamcrest Common Core Matchers

1. Prehľad

V tomto rýchlom výučbe preskúmame CoreMatchers triedy z populárneho rámca Hamcrest na písanie jednoduchých a výraznejších testovacích prípadov.

Cieľom je, aby sa tvrdenia tvrdili ako prirodzený jazyk.

2. Nastavenie Hamcrest

Hamcrest s Maven môžeme použiť pridaním nasledujúcej závislosti do našej pom.xml spis:

 org.hamcrest test Java-hamcrest 2.0.0.0 

Najnovšiu verziu tejto knižnice nájdete vždy tu.

3. Spoločné porovnávače jadier

3.1. je (T) a je (Matcher)

The je (T) berie objekt ako parameter na kontrolu rovnosti a je (Matcher) trvá ďalší porovnávač, ktorý umožňuje, aby vyhlásenie o rovnosti bolo expresívnejšie.

Môžeme to použiť takmer so všetkými metódami:

String testString = "hamcrestové jadro"; assertThat (testString, is ("hamcrest core")); assertThat (testString, is (equalTo ("hamcrest core")));

3.2. rovnaké (T)

The rovnaké (T) berie objekt ako parameter a kontroluje jeho rovnosť s iným objektom. Toto sa často používa s je (Matcher):

Reťazec actualString = "rovnaká zhoda"; Zoznam actualList = Lists.newArrayList ("equalTo", "match"); assertThat (actualString, is (equalTo ("equalTo match"))); assertThat (actualList, is (equalTo (Lists.newArrayList ("equalTo", "match"))));

Môžeme tiež použiť equalToObject (operand objektu) - ktorý kontroluje rovnosť a nepresadzuje, aby dva objekty mali rovnaký statický typ:

Originál objektu = 100; assertThat (original, equalToObject (100));

3.3. nie (T) a nie (Matcher)

The nie (T) a nie (Matcher) slúžia na kontrolu nerovnosti daných objektov. Najprv vezmeme objekt ako argument a potom vezmeme iný porovnávač:

String testString = "trójske kráľovstvo"; assertThat (testString, nie ("nemecké kráľovstvo")); assertThat (testString, is (not (equalTo ("nemecké kráľovstvo")))); assertThat (testString, is (not (instanceOf (Integer.class)))));

3.4. nullValue () a nullValue (trieda)

The nullValue () skontrolovať nulový hodnotu oproti skúmanému objektu. The nullValue (trieda) skontroluje nullovateľnosť daného objektu typu triedy:

Celé číslo nullObject = null; assertThat (nullObject, is (nullValue ())); assertThat (nullObject, is (nullValue (Integer.class)));

3.5. notNullValue () a notNullValue (trieda)

Toto je skratka pre často používané je (nie (nullValue)). Tieto kontrolujú nenulovú rovnosť objektu alebo typu triedy:

Celé číslo testNumber = 123; assertThat (testNumber, is (notNullValue ())); assertThat (testNumber, is (notNullValue (Integer.class)));

3.6. instanceOf (trieda)

The instanceOf (trieda) sa zhoduje, ak je skúmaný objekt inštanciou zadaného Triedatypu.

Na overenie táto metóda interne voláisIntance (Object) z Trieda trieda:

assertThat ("instanceOf príklad", je (instanceOf (String.class)));

3.7. isA(Typ triedy)

The isA (typ triedy) je skratka k uvedenému instanceOf (trieda). Trvá to presne ten istý typ argumentu ako instanceOf (trieda):

assertThat ("Drogon je najväčší drak", isA (String.class));

3.8. sameInstance ()

The sameInstance () sa zhoduje, ak dve referenčné premenné smerujú na rovnaký objekt v halde:

Reťazec string1 = "Viseron"; Reťazec string2 = string1; assertThat (string1, is (sameInstance (string2)));

3.9. akýkoľvek (trieda)

The akýkoľvek (trieda)skontroluje, či je trieda rovnakého typu ako skutočný objekt:

assertThat ("testovací reťazec", je (akýkoľvek (String.class))); assertThat ("testovací reťazec", je (akýkoľvek (Object.class)));

3.10. allOf (Matcher ...) a anyOf (Matcher ...)

Môžeme použiť allOf (Matcher ...) tvrdiť, či sa skutočný objekt zhoduje so všetkými zadanými podmienkami:

String testString = "Achilles je silný"; assertThat (testString, allOf (startsWith ("Achi"), endsWith ("ul"), containsString ("Achilles")));

The anyOf (Matcher ...) správa sa ako allOf (Matcher ...) ale zhoduje sa, ak skúmaný objekt vyhovuje niektorej zo zadaných podmienok:

String testString = "Hector zabil Achilla"; assertThat (testString, anyOf (startsWith ("Hec"), containsString ("baeldung")));

3.11. hasItem (T) a hasItem (Matcher)

Tieto sa zhodujú, ak sú preskúmané Iterable kolekcia sa zhoduje s daným objektom alebo kombináciou vo vnútri hasItem () alebo hasItem (Matcher).

Poďme pochopiť, ako to funguje:

Zoznam list = Lists.newArrayList ("java", "jar", "baeldung"); assertThat (list, hasItem ("java")); assertThat (list, hasItem (isA (String.class)));

Podobne môžeme tiež presadzovať proti viac ako jednej položke pomocou hasItems (T…) a hasItems (Matcher ...):

Zoznam list = Lists.newArrayList ("java", "jar", "baeldung"); assertThat (list, hasItems ("java", "baeldung")); assertThat (list, hasItems (isA (String.class), endsWith ("ing"))));

3.12. obaja (Matcher) a buď (Matcher)

Ako už názov napovedá, obaja (Matcher) sa zhoduje, keď sa obidve zadané podmienky zhodujú so skúmaným objektom:

Reťazec testString = "daenerys targaryen"; assertThat (testString, oba (startWith ("daene")). a (containsString ("yen")));

a buď (Matcher)sa zhoduje, keď sa ktorákoľvek zo zadaných podmienok zhoduje so skúmaným objektom:

Reťazec testString = "daenerys targaryen"; assertThat (testString, bud (startWith ("tar")). alebo (containsString ("targaryen")));

4. String Porovnanie

Môžeme použiť containsString (String) alebo containsStringIgnoringCase (reťazec) tvrdiť, či skutočný reťazec obsahuje testovací reťazec:

Reťazec testString = "Rhaegar Targaryen"; assertThat (testString, containsString ("aegar")); assertThat (testString, containsStringIgnoringCase ("AEGAR"));

Alebo startsWith (String) a startWithIgnoringCase (reťazec) tvrdiť, či skutočný reťazec začína testovacím reťazcom:

assertThat (testString, startsWith ("Rhae")); assertThat (testString, startsWithIgnoringCase ("rhae"));

Môžeme tiež použiť končí s (reťazec) alebo endsWithIgnoringCase (reťazec) tvrdiť, či skutočný reťazec končí testovacím reťazcom:

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

5. Záver

V tomto článku sme diskutovali o rôznych metódach CoreMatchers trieda v Hamcrest knižnica.

A ako vždy, zdrojový kód príkladov nájdete na GitHub.


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