Hamcrest - Hamcrest
Hamcrest je rámec, který pomáhá při psaní testů softwaru v systému Windows Jáva programovací jazyk. Podporuje vytváření přizpůsobených porovnávačů tvrzení („Hamcrest“ je anagram of 'matchers'), což umožňuje definovat pravidla shody deklarativně.[1] Tyto dohazovače mají použití v testování jednotky rámce jako JUnit a jMock. Hamcrest je součástí JUnit 4 od roku 2012,[2]ale byl vynechán z JUnit 5 v roce 2017.[3]
Hamcrest byl přenesen do C ++, C#,[4] Cíl-C, Krajta,[5] ActionScript 3,[6] PHP,[7] JavaScript,[8] Erlang,[9] R,[10] Rez,[11]. a Rychlý[12]
Odůvodnění
Jednotkové testovací rámce „první generace“ poskytují příkaz „assert“, který umožňuje jednomu během testu tvrdit, že konkrétní podmínka musí být pravdivá. Pokud je podmínka nepravdivá, test selže. Například:
tvrdit(X == y);
Ale v mnoha jazycích tato syntaxe nedokáže vytvořit dostatečně dobrou chybovou zprávu, pokud se „x“ a „y“ nerovnají. Bylo by lepší, kdyby chybová zpráva zobrazovala hodnotu „x“ a „y“. K vyřešení tohoto problému poskytují testovací rámce jednotek „druhé generace“ rodinu tvrzení, která vytvářejí lepší chybové zprávy. Například,
assert_equal(X, y);assert_not_equal(X, y);
Ale to vede k explozi v počtu makra tvrzení, protože výše uvedená sada je rozšířena o podporu srovnání odlišných od jednoduché rovnosti. Takže rámce pro testování jednotek „třetí generace“ používají knihovnu, jako je Hamcrest, k podpoře operátoru „assert_that“, který lze kombinovat s objekty „matcher“, což vede k syntaxi, jako je tato:
tvrdit, že(X, rovná(y))tvrdit, že(X, není(rovná(y)))
Výhodou je, že při selhání tvrzení stále existují plynulé chybové zprávy, ale s větší rozšiřitelností. Nyní je možné definovat operace, které berou porovnávače jako argumenty, a vracet je jako výsledky, což vede k gramatice, která může generovat obrovské množství možných výrazů porovnávání z malého počtu primitivních porovnávačů.
Tyto operace porovnávání vyššího řádu zahrnují logická spojovací zařízení (a, či nikoli) a operace pro iteraci přes kolekce. To má za následek bohatý porovnávací jazyk, který umožňuje psát složitá tvrzení nad kolekcemi spíše v deklarativním stylu než v procedurálním stylu.[Citace je zapotřebí ]
Reference
- ^ „Výukový program Hamcrest“.
- ^ Marc Philipp (21. října 2012). "Souhrn změn ve verzi 4.4". Dokumentace JUnit. Citováno 20 zář 2016.
- ^ „Uživatelská příručka JUnit 5 - knihovny tvrzení třetích stran“. Citováno 11. května 2018.
- ^ "NHamcrest".
- ^ „PyHamcrest“.
- ^ "Hamcrest-AS3".
- ^ „Hamcrest - Google Code“.
- ^ „Hamcrest4Qunit“.
- ^ „Hamcrest Erlang“.
- ^ „Hamcrest pro Renjina“.
- ^ „Balíček Hamcrest Cargo“.
- ^ „Hamcrest pro Swift“.
externí odkazy
![]() | Tento programovací nástroj související článek je a pahýl. Wikipedii můžete pomoci pomocí rozšiřovat to. |