Testing matchers

Jest Matcher Playground

Wklej received i expected jako JSON, wybierz matcher Jest-style i zobacz PASS/FAIL, diff oraz wyjasnienie bez wysylania przykladow na backend.

  • Input zostaje w przegladarce
  • Diff expected vs received
  • Bez wykonywania regex

Porownaj zachowanie matchera

Uzyj presetow albo wklej wartosci JSON, zeby sprawdzic semantyke matchera przed napisaniem testu albo review asercji.

FAIL

Dwa identyczne obiekty literalne failuja identity matching, ale przechodza deep equality. Semantyka Object.is dla prymitywow; osobne obiekty JSON nie sa ta sama referencja.

Input asercji

Wynik matchera

FAIL: expect(received).toBe failed.

Matcher
toBe
Received
object
Expected
object
Wezly
14
expect(received).toBe({"id":"release-42","flags":["search","adsense"],"meta":{"stable":true}});
Zmiana$

Expected: {"id":"release-42","flags":["search","adsense"],"meta":{"stable":true}}

Received: {"id":"release-42","flags":["search","adsense"],"meta":{"stable":true}}

Co zwykle umyka w review matcherow

Identity to nie struktura

toBe jest dobre dla prymitywow i referencji, ale skopiowane obiekty literalne zwykle wymagaja toEqual albo toStrictEqual. Widok obu wynikow obok siebie ulatwia review intencji asercji.

Partial match to kontrakt

toMatchObject pomaga, gdy test dba o podzbior odpowiedzi. Diff skupia sie na brakujacych albo zmienionych expected keys zamiast rozpraszac reviewerow polami bez znaczenia.

Publiczne przyklady potrzebuja guardrails

Playground nie wykonuje JavaScript ani regex, blokuje klucze prototype-pollution i pilnuje limitow wielkosci, zeby pozostac bezpieczna publiczna powierzchnia review.

Wybory matcherow sasiaduja z lint rules, parser output, konfiguracja i schema validation. Te narzedzia pokrywaja bliskie kroki review.

FAQ

Czy to uruchamia Jest w przegladarce?

Nie. To skupiony matcher explainer, ktory odzwierciedla typowe semantyki Jest-style dla wartosci JSON. Nie uruchamia test runnera ani dowolnego JavaScript.

Jak reprezentowac undefined albo NaN w JSON?

Uzyj {"$pfType":"undefined"} albo {"$pfType":"NaN"}. Te sentinele utrzymuja input JSON-only i pozwalaja pokryc wazne przypadki matcherow.

Dlaczego toMatch nie wspiera tutaj regex?

Publiczne MVP uzywa plain substring matching, zeby uniknac ReDoS i zlozonosci wykonywania wzorcow. Zachowanie regex trzeba potwierdzic w repozytoryjnym test suite.

Czy wklejone dane sa zapisywane?

Nie. Ewaluacja dziala w przegladarce dla tego playgroundu. MVP nie dodaje kont, historii, remote fetch ani backend execution.