Рубрики
Без рубрики

Тестирование приложения Node.js с нативным модулем: Assert

Тестирование – это способ, который вы можете сделать, чтобы проверить, правильно ли работают функции вашего приложения … Tagged с узлом, JavaScript, тестирование.

Тестирование – это способ, который вы можете сделать, чтобы проверить, работают ли функции вашего приложения правильно, либо изолированные, либо интегрированные. Эта практика стала процессом разработки программного обеспечения под названием 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”