Использование сопоставлений
Jest использует «cопоставления» для тестирования значений разными способами. На этой странице будут представлены сопоставления, которые чаще всего используются. Полный список смотрите в описании expect
API.
#
Стандартные сопоставленияСамый простой способ проверить значение — при помощи точного равенства.
В этом коде expect(2+2)
возвращает объект "ожиданий". Обычно вам не придется делать с этими объектами ожиданий ничего кроме как вызывать их вычислители. В этом примере кода .toBe(4)
это вычислитель. При запуске, Jest отслеживает все провалившиеся вычислители для того, чтобы он мог напечатать для вас сообщения об ошибках.
toBe
использует Object.is
для проверки точного совпадения. Если же вам нужно проверить значение объекта, воспользуйтесь toEqual
:
toEqual
рекурсивно проверяет каждое поле объекта или массива.
Вы также можете протестировать на противоположность вычислителю:
#
ПравдивостьПри тестировании иногда необходимо различать undefined
, null
и false
, но в некоторых ситуациях это не требуется. Jest содержит вспомогательные функции позволяющие явно указывать, что вам нужно.
toBeNull
соответствует толькоnull
toUndefined
соответствует толькоundefined
toBeDefined
является противоположностьюtoBeUndefined
toBeTruthy
соответствует всему, чтоif
инструкция рассматривает как truetoBeFalsy
соответствует всему, чтоif
инструкция рассматривает как false
Например:
Следует использовать вычислитель, который наиболее точно отражает то, что код должен делать.
#
ЧислаБольшинство способов сравнения чисел имеют эквивалентные вычислители.
Для проверки равенства чисел с плавающей запятой, используйте toBeCloseTo
вместо toEqual
потому, что вы не хотите, чтобы тест полагался на небольшую ошибку округления.
#
СтрокиДля сопоставления строк с регулярными выражениями, используйте toMatch
:
#
Массивы и перебираемые объектыВы можете проверить, содержит ли массив или итерируемый объект конкретное значение, используя toContain
:
#
ИсключенияДля проверки возврата ошибки конкретной функцией при её вызове, используйте toThrow
.
Note: the function that throws an exception needs to be invoked within a wrapping function otherwise the
toThrow
assertion will fail.
#
И многое другоеЭто лишь проба пера. Для ознакомления с полным списком сопоставлений, обратите внимание на справочную документацию.
После того как вы узнали о всех доступных сопоставлениях, следующим шагом взгляните на то, как Jest позволяет тестировать асинхронный код.