Тестирование – это способ, который вы можете сделать, чтобы проверить, работают ли функции вашего приложения правильно, либо изолированные, либо интегрированные. Эта практика стала процессом разработки программного обеспечения под названием TDD (разработка на основе тестирования), что в основном состоит в создании теста, прежде чем создавать функцию, пусть он не работает и создать код для прохождения этого теста, какой код будет меньше и сфокусированным Анкет
Чтобы попробовать этот тестовый подход в node.js, мы можем использовать модуль « assert
», который предоставляет некоторые основы функции для проверки ваших функций и методов. Обратите внимание, что некоторые функции этого модуля устарели, а другие испытаны, поэтому я просто представлю стабильные.
Для этого урока я использую ** node.js , версия ** 15.6.0 * и npm , версия 6.14.11 . *
Для начала вы просто импортируете модуль «утверждение» в свой код
import assert from "assert" ...
Функции модуля “Assert” бросают исключение под названием AssertionError
* ***, когда некоторые тесты не удались, но они ничего не делают, когда он проходит. Чтобы проверить результат, без борьбы с ошибкой node.js, можно поместить утверждения в «попытку поймать».
import assert from "assert"; try { assert.strictEqual(5, 10, "The values are not equal"); //test if the values are equal console.log("Ok"); } catch(error) { if(error instanceof AssertionError) { console.error(error); } }
Мы сделали наш первый тест, который потерпит неудачу, но что такое Строговой
? Эта функция и другие будут показаны здесь.
assert.strictequal (фактическое, ожидаемое [, сообщение])
Проверьте, равны ли значения
Фактическое
Реальная стоимостьОжидается
Ожидаемое значениеСообщение
Сообщение об ошибке
https://nodejs.org/api/assert.html#assert_assert_strictequal_actual_expected_message
assert.notstrictequal (фактическое, ожидаемое [, сообщение])
Обратный Строгоджол
Анкет Бросить AssertionError
* *** Если значения равны.
Фактическое
Реальная стоимостьОжидается
Ожидаемое значениеСообщение
Сообщение об ошибке
//... assert.notStrictEqual(5, 10, "5 is equal to 10 ???"); //...
https://nodejs.org/api/assert.html#assert_assert_notstrictequal_actual_expected_message
assert.deepstrictequal (фактическое, ожидаемое [, сообщение])
- “Тесты на глубокое равенство между фактическими и ожидаемыми параметрами. «Глубокое» равенство означает, что перечисляемые «собственные» свойства детских объектов рекурсивно оцениваются по следующим правилам ».
Фактическое
Реальная стоимостьОжидается
Ожидаемое значениеСообщение
Сообщение об ошибке
//... assert.deepStrictEqual( {name: "John", age: 20}, {name: "John", age: 20}, ); //...
https://nodejs.org/api/assert.html#assert_assert_deepstrictequal_actual_expected_message
assert.notdeepstrictequal (фактическое, ожидаемое [, сообщение])
По сути, обратное DeepStrictequal
Анкет Когда утверждение верно, а AssertionError
* *** это бросает.
Фактическое
Реальная стоимостьОжидается
Ожидаемое значениеСообщение
Сообщение об ошибке
//... assert.notDeepStrictEqual( {name: "John", age: 20}, {name: "Mary", age: 20}, "The objects are equals" ); //...
https://nodejs.org/api/assert.html#assert_assert_notdeepstrictequal_actual_expected_message
assert.assert (значение [, сообщение])
Тестирует, если значение
выражения верно. Если это не так, бросьте AssertionError
Анкет
значение
Выражение для оценкиСообщение
Сообщение об ошибке
//... assert.assert(10 < 5, "5 is not greater than to 10"); //...
assert.iferror (значение)
Проверяет, если значение
это либо NULL
или неопределенное
Анкет Если это не так, бросьте значение
Внутри AssertionError
значение
//... assert.ifError("it is not undefined"); //...
Вы также можете проверить обещания с:
assert.rejects (asyncfn [, ошибка] [, сообщение])
Проверьте, если Asyncfn
вернуть обещание отвергнуто. Если это не так, а AssertionError
* *** брошены.
- «Если
asyncfn
– это функция, и она синхронно выбрасывает ошибку, assert.rejects () вернет отклоненное обещание с этой ошибкой. Если функция не возвращает обещание,assert.rejects ()
Вернут отклоненное обещание сErr_invalid_return_value
ошибка. В обоих случаях обработчик ошибок пропускается ». Asyncfn
Функция, которая возвращает обещание/обещаниеОшибка
Результат от обещания отвергнутоСообщение
Сообщение об ошибке
//... assert.rejects(async () => { return await Promise.reject({ name: "John", age: "20" }); }, { name: "John", age: "20" }, "Promise resolved!"); // or... assert.rejects(Promise.reject({ name: "John", age: "20" }), { name: "John", age: "20" }, "Promise resolved!"); //...
https://nodejs.org/api/assert.html#assert_assert_rejects_asyncfn_error_message
И, если вам нужно, просто используйте assert.fail ([ḿessage])
бросить AssertionError
с этим Сообщение
Анкет
API node.js Api прост и прост в использовании, но может быть полезен, если тестовый костюм, подобный Jest, слишком важен для ваших требований в определенный момент. Знание существования этого модуля и того, как вы можете его использовать, может также быть полезным, если вы хотите получить сертификацию Node.js, в соответствии с которым я прочитал.
В этой статье я попытался принести сюда функции этого модуля, которые не устарели, рекомендованы документацией и тем, что я думаю, что будет наиболее использовано в дневной жизни.
Спасибо, что прочитали и чувствовали, что комментируют или исправляли меня о чем -то в статье. Я надеюсь, что это поможет вам каким -то образом.
Полезные ссылки:
Оригинал: “https://dev.to/henrybarreto/testing-a-node-js-application-with-the-native-module-assert-4cp”