Шпаргалка по Jest (Stylesheet Jest)
Базовая структура теста
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <span class="pl-en">describe</span><span class="pl-kos">(</span><span class="pl-s">'Выбор цвета'</span><span class="pl-kos">,</span> <span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">=></span> <span class="pl-kos">{</span> <span class="pl-en">beforeAll</span><span class="pl-kos">(</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">=></span> <span class="pl-kos">{</span> <span class="pl-c">/* Запускается перед всеми тестами */</span> <span class="pl-kos">}</span><span class="pl-kos">)</span> <span class="pl-en">afterAll</span><span class="pl-kos">(</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">=></span> <span class="pl-kos">{</span> <span class="pl-c">/* Запускается после всех тестов */</span> <span class="pl-kos">}</span><span class="pl-kos">)</span> <span class="pl-en">beforeEach</span><span class="pl-kos">(</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">=></span> <span class="pl-kos">{</span> <span class="pl-c">/* Запускается перед каждым тестом */</span> <span class="pl-kos">}</span><span class="pl-kos">)</span> <span class="pl-en">afterEach</span><span class="pl-kos">(</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">=></span> <span class="pl-kos">{</span> <span class="pl-c">/* Запускается после каждого теста */</span> <span class="pl-kos">}</span><span class="pl-kos">)</span> <span class="pl-en">test</span><span class="pl-kos">(</span><span class="pl-s">'Выбираем цвет'</span><span class="pl-kos">,</span> <span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">=></span> <span class="pl-kos">{</span> <span class="pl-k">const</span> <span class="pl-s1">actual</span> <span class="pl-c1">=</span> <span class="pl-en">fn</span><span class="pl-kos">(</span><span class="pl-kos">[</span><span class="pl-s">'Alice'</span><span class="pl-kos">,</span> <span class="pl-s">'Bob'</span><span class="pl-kos">,</span> <span class="pl-s">'John'</span><span class="pl-kos">]</span><span class="pl-kos">)</span> <span class="pl-en">expect</span><span class="pl-kos">(</span><span class="pl-s1">actual</span><span class="pl-kos">)</span><span class="pl-kos">.</span><span class="pl-en">toEqual</span><span class="pl-kos">(</span><span class="pl-kos">[</span><span class="pl-s">'Pink Alice'</span><span class="pl-kos">,</span> <span class="pl-s">'Pink Bob'</span><span class="pl-kos">,</span> <span class="pl-s">'Pink John'</span><span class="pl-kos">]</span><span class="pl-kos">)</span> <span class="pl-kos">}</span><span class="pl-kos">)</span> <span class="pl-kos">}</span><span class="pl-kos">)</span> |
Поиск совпадений
Базовый поиск совпадений
1 2 3 4 5 | <span class="pl-en">expect</span><span class="pl-kos">(</span><span class="pl-c1">42</span><span class="pl-kos">)</span><span class="pl-kos">.</span><span class="pl-en">toBe</span><span class="pl-kos">(</span><span class="pl-c1">42</span><span class="pl-kos">)</span> <span class="pl-c">// Строгое равенство (===)</span> <span class="pl-en">expect</span><span class="pl-kos">(</span><span class="pl-c1">42</span><span class="pl-kos">)</span><span class="pl-kos">.</span><span class="pl-c1">not</span><span class="pl-kos">.</span><span class="pl-en">toBe</span><span class="pl-kos">(</span><span class="pl-c1">3</span><span class="pl-kos">)</span> <span class="pl-c">// Строгое неравенство (!==)</span> <span class="pl-en">expect</span><span class="pl-kos">(</span><span class="pl-kos">[</span><span class="pl-c1">1</span><span class="pl-kos">,</span> <span class="pl-c1">2</span><span class="pl-kos">]</span><span class="pl-kos">)</span><span class="pl-kos">.</span><span class="pl-en">toEqual</span><span class="pl-kos">(</span><span class="pl-kos">[</span><span class="pl-c1">1</span><span class="pl-kos">,</span> <span class="pl-c1">2</span><span class="pl-kos">]</span><span class="pl-kos">)</span> <span class="pl-c">// Глубокое сравнение</span> <span class="pl-en">expect</span><span class="pl-kos">(</span><span class="pl-kos">{</span> <span class="pl-c1">a</span>: <span class="pl-c1">undefined</span><span class="pl-kos">,</span> <span class="pl-c1">b</span>: <span class="pl-c1">2</span> <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">.</span><span class="pl-en">toEqual</span><span class="pl-kos">(</span><span class="pl-kos">{</span> <span class="pl-c1">b</span>: <span class="pl-c1">2</span> <span class="pl-kos">}</span><span class="pl-kos">)</span> <span class="pl-c">// Глубокое сравнение</span> <span class="pl-en">expect</span><span class="pl-kos">(</span><span class="pl-kos">{</span> <span class="pl-c1">a</span>: <span class="pl-c1">undefined</span><span class="pl-kos">,</span> <span class="pl-c1">b</span>: <span class="pl-c1">2</span> <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">.</span><span class="pl-c1">not</span><span class="pl-kos">.</span><span class="pl-en">toStrictEqual</span><span class="pl-kos">(</span><span class="pl-kos">{</span> <span class="pl-c1">b</span>: <span class="pl-c1">2</span> <span class="pl-kos">}</span><span class="pl-kos">)</span> <span class="pl-c">// Строгое сравнение</span> |
Определение истинности
1 2 3 4 5 6 7 8 9 10 11 12 | <span class="pl-c">// Совпадает с истинными значениями</span> <span class="pl-en">expect</span><span class="pl-kos">(</span><span class="pl-s">'foo'</span><span class="pl-kos">)</span><span class="pl-kos">.</span><span class="pl-en">toBeTruthy</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c">// Совпадает с ложными значениями</span> <span class="pl-en">expect</span><span class="pl-kos">(</span><span class="pl-s">''</span><span class="pl-kos">)</span><span class="pl-kos">.</span><span class="pl-en">toBeFalsy</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c">// Совпадает только с `null`</span> <span class="pl-en">expect</span><span class="pl-kos">(</span><span class="pl-c1">null</span><span class="pl-kos">)</span><span class="pl-kos">.</span><span class="pl-en">toBeNull</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c">// Совпадает только с `undefined`</span> <span class="pl-en">expect</span><span class="pl-kos">(</span><span class="pl-c1">undefined</span><span class="pl-kos">)</span><span class="pl-kos">.</span><span class="pl-en">toBeUndefined</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c">// Значение должно быть определено</span> <span class="pl-en">expect</span><span class="pl-kos">(</span><span class="pl-c1">7</span><span class="pl-kos">)</span><span class="pl-kos">.</span><span class="pl-en">toBeDefined</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c">// Совпадает с `true` или `false`</span> <span class="pl-en">expect</span><span class="pl-kos">(</span><span class="pl-c1">true</span><span class="pl-kos">)</span><span class="pl-kos">.</span><span class="pl-en">toEqual</span><span class="pl-kos">(</span><span class="pl-s1">expect</span><span class="pl-kos">.</span><span class="pl-en">any</span><span class="pl-kos">(</span><span class="pl-v">Boolean</span><span class="pl-kos">)</span><span class="pl-kos">)</span> |
Числа
1 2 3 4 5 6 | <span class="pl-en">expect</span><span class="pl-kos">(</span><span class="pl-c1">2</span><span class="pl-kos">)</span><span class="pl-kos">.</span><span class="pl-en">toBeGreaterThan</span><span class="pl-kos">(</span><span class="pl-c1">1</span><span class="pl-kos">)</span> <span class="pl-en">expect</span><span class="pl-kos">(</span><span class="pl-c1">1</span><span class="pl-kos">)</span><span class="pl-kos">.</span><span class="pl-en">toBeGreaterThanOrEqual</span><span class="pl-kos">(</span><span class="pl-c1">1</span><span class="pl-kos">)</span> <span class="pl-en">expect</span><span class="pl-kos">(</span><span class="pl-c1">1</span><span class="pl-kos">)</span><span class="pl-kos">.</span><span class="pl-en">toBeLessThan</span><span class="pl-kos">(</span><span class="pl-c1">2</span><span class="pl-kos">)</span> <span class="pl-en">expect</span><span class="pl-kos">(</span><span class="pl-c1">1</span><span class="pl-kos">)</span><span class="pl-kos">.</span><span class="pl-en">toBeLessThanOrEqual</span><span class="pl-kos">(</span><span class="pl-c1">1</span><span class="pl-kos">)</span> <span class="pl-en">expect</span><span class="pl-kos">(</span><span class="pl-c1">0.2</span> <span class="pl-c1">+</span> <span class="pl-c1">0.1</span><span class="pl-kos">)</span><span class="pl-kos">.</span><span class="pl-en">toBeCloseTo</span><span class="pl-kos">(</span><span class="pl-c1">0.3</span><span class="pl-kos">,</span> <span class="pl-c1">5</span><span class="pl-kos">)</span> <span class="pl-en">expect</span><span class="pl-kos">(</span><span class="pl-v">NaN</span><span class="pl-kos">)</span><span class="pl-kos">.</span><span class="pl-en">toEqual</span><span class="pl-kos">(</span><span class="pl-s1">expect</span><span class="pl-kos">.</span><span class="pl-en">any</span><span class="pl-kos">(</span><span class="pl-v">Number</span><span class="pl-kos">)</span><span class="pl-kos">)</span> |
Строки
1 2 3 4 5 | <span class="pl-en">expect</span><span class="pl-kos">(</span><span class="pl-s">'длинная строка'</span><span class="pl-kos">)</span><span class="pl-kos">.</span><span class="pl-en">toMatch</span><span class="pl-kos">(</span><span class="pl-s">'стр'</span><span class="pl-kos">)</span> <span class="pl-en">expect</span><span class="pl-kos">(</span><span class="pl-s">'строка'</span><span class="pl-kos">)</span><span class="pl-kos">.</span><span class="pl-en">toEqual</span><span class="pl-kos">(</span><span class="pl-s1">expect</span><span class="pl-kos">.</span><span class="pl-en">any</span><span class="pl-kos">(</span><span class="pl-v">String</span><span class="pl-kos">)</span><span class="pl-kos">)</span> <span class="pl-en">expect</span><span class="pl-kos">(</span><span class="pl-s">'кофе'</span><span class="pl-kos">)</span><span class="pl-kos">.</span><span class="pl-en">toMatch</span><span class="pl-kos">(</span><span class="pl-pds">/ф/</span><span class="pl-kos">)</span> <span class="pl-en">expect</span><span class="pl-kos">(</span><span class="pl-s">'пицца'</span><span class="pl-kos">)</span><span class="pl-kos">.</span><span class="pl-c1">not</span><span class="pl-kos">.</span><span class="pl-en">toMatch</span><span class="pl-kos">(</span><span class="pl-s">'кофе'</span><span class="pl-kos">)</span> <span class="pl-en">expect</span><span class="pl-kos">(</span><span class="pl-kos">[</span><span class="pl-s">'пицца'</span><span class="pl-kos">,</span> <span class="pl-s">'кофе'</span><span class="pl-kos">]</span><span class="pl-kos">)</span><span class="pl-kos">.</span><span class="pl-en">toEqual</span><span class="pl-kos">(</span><span class="pl-kos">[</span><span class="pl-s1">expect</span><span class="pl-kos">.</span><span class="pl-en">stringContaining</span><span class="pl-kos">(</span><span class="pl-s">'цц'</span><span class="pl-kos">)</span><span class="pl-kos">,</span> <span class="pl-s1">expect</span><span class="pl-kos">.</span><span class="pl-en">stringMatching</span><span class="pl-kos">(</span><span class="pl-pds">/ф/</span><span class="pl-kos">)</span><span class="pl-kos">]</span><span class="pl-kos">)</span> |