Автор оригинала: FreeCodeCamp Community Member.
EDD Yerburgh
Установки тесты потрясающие. Письменные модульные тесты Уменьшает ошибки на 40-80% Отказ
Но вам нужно сделать их правильно. Плохо написанные тесты подразделений могут задохнуть кодовую базу и вызвать больше проблем, чем они решают.
Один из способов улучшить тесты своих устройств – использовать Утверждения стоимости Отказ
В этой статье мы посмотрим, какие утверждения стоимости являются, и как использовать их для улучшения ваших тестов.
Понимание утверждений
Утверждения являются функциями, которые проверяют, чтобы убедиться, что код ведет себя, как мы ожидали.
Различные языки имеют разные конвенции. В JavaScript обычно следовать за ожидать
шаблон. Это где ты ожидать
условие соответствовать значению.
Мы объединяем ожидать
Функция с другой функцией под названием Matcher Отказ
В приведении ниже мы ожидать
результат Сумма (1,1)
равным 2
Отказ Тобе
Matcher проверяет, что ожидаемое значение равно 2
Отказ
expect(sum(1,1)).toBe(2)
Если результат Сумма (1,1)
равен 2
Функция ничего не будет делать, и тест пройдет. Если Сумма (1,1)
не равно 2
функция бросает Ошибка утверждения и тест терпит неудачу.
Ошибки отладки утверждения
В тестовых рамках ошибки утверждения отформатированы, чтобы облегчить чтение сообщения. Ошибки утверждения позволяют быстро выяснить, что пошло не так в тесте.
Вы можете увидеть неудачу Jest Ошибка утверждения ниже:
По какой-то причине Сумма (1,1)
Вернулся 3
Отказ
Если мы проверим код, мы найдем кого-то случайно добавленного B
дважды:
function sum(a,b) { return a + b + b}
Мы можем быстро исправить ошибку и получить сумма
функция снова работает. Ошибка утверждения помогла нам выяснить, что пошло не так и где.
Что является утверждением стоимости?
Утверждение стоимости является Утверждение, которое сравнивает два значения Отказ
Мы только что написали заявление о стоимости:
expect(sum(1,1)).toBe(2)
И сгенерировал ошибку утверждения:
Expected value to be (using ===): 2 Received: 3
Какие другие утверждения там?
Другое распространенное утверждение является Булевое утверждение Отказ
Булевое утверждение – Утверждение, которое сравнивает два логических.
expect(add(1,1) === 2).toBe(true)
Это генерирует ошибку Boolean Assertion:
Expected value to be (using ===): true Received: false
Отладка стоимости утверждения
Утверждения стоимости бросают описательные ошибки утверждений.
Когда тест терпит неудачу с уведомлением о значении, вы можете понять, почему тест не удается. Это дает нам ключ к тому, что происходит в коде:
warning: expected 'somevalue' to equal 'some value'
Вы знаете, что искать в коде, когда вы видите такие ошибки. О, похоже, кто-то удалил пространство случайно.
Утверждения о стоимости улучшают отдаленность (да, это слово) модульных тестов. От чтения ошибки утверждения вы можете увидеть, что пошло не так в тесте.
Давайте посмотрим на ошибку утверждения от логического утверждения:
Что пошло не так?
Требуется дольше для отладки теста с логическим утверждением, потому что вы не знаете, какое значение было возвращено проверенным кодом.
Это делает ошибки Boolean Assertion довольно бесполезными в модульных тестах.
Утверждения со написанием стоимости
Таким образом, мы хотим написать составные утверждения.
Большинство библиотек тестирования JavaScript предоставляют функции для записи стоимости утверждений.
Quest содержит тонны Полезные партнеры Для создания стоимости утверждений:
.toBeGreaterThan(number).toContain(item).toHaveBeenCalled().toHaveProperty(keyPath, value)
Призыв к действию
Теперь вы понимаете способность утверждений стоимости, ваши тесты улучшатся.
Выходите туда и напишите некоторые тесты от отладки!
Если вам понравилось эту статью, пожалуйста, дайте мне несколько хлопьев, чтобы все больше людей видят это. Спасибо!