Статья Исправьте свой чай и изучите искусство утверждений одновременно была впервые опубликована в четверг, 05 января 2023 года, в Блоге технических разработчиков. Для получения новейшего актуального контента, только что из печи, посетите https://techdevblog.io и подпишитесь на нашу рассылку!

Привет! Вы устали от написания утомительных и повторяющихся тестов для вашего кода JavaScript? Не смотрите дальше, потому что Чай здесь, чтобы спасти положение!

Chai — это популярная библиотека утверждений для Node.js и браузера, который позволяет легко писать мощные и элегантные тестовые примеры. Он предоставляет ряд функций, которые позволяют вам делать различные утверждения о вашем коде, от простых утверждений истина/ложь до более сложных сравнений.

В этом уроке мы рассмотрим основы использования Chai для написания тестовых случаев для вашего кода JavaScript. К концу вы станете профессионалом Chai, и ваш набор тестов будет работать без сбоев в кратчайшие сроки!

Настройка Чая

Прежде чем мы углубимся в написание тестов с помощью Chai, давайте сначала убедимся, что он настроен в вашем проекте.

Если вы используете Node.js, вы можете установить Chai с помощью npm:

npm install --save-dev chai

Если вы используете браузер, вы можете включить Chai в свой HTML-файл, используя тег script:

Примечание. Chai — это библиотека утверждений. Чтобы запустить настоящие тесты, лучше соединить Chai с тестовой средой, такой как Jasmine или Mocha.

Написание тест-кейсов с Chai

Теперь, когда мы настроили Chai, давайте начнем писать несколько тестовых случаев!

Во-первых, давайте посмотрим на различные типы утверждений, которые предоставляет Чай. Чай имеет три разных стиля утверждения:

  • assert: это классический, традиционный способ утверждения. Он похож на встроенный модуль assert в node.js.
  • ожидание: это более естественный стиль формулировки утверждений. Его легче читать и писать, и это самый популярный способ использования Chai.
  • следует: это стиль BDD (Behavior Driven Development) утверждения утверждений. Он похож на стиль expect, но с немного другим синтаксисом.

В этом уроке мы будем использовать стиль expect, так как он наиболее широко используется и синтаксис, с которым вы, скорее всего, столкнетесь.

Делать простые утверждения

Давайте начнем с написания простого теста, чтобы убедиться, что функция возвращает правильный результат.

Вот наша функция:

function add(a, b) {
  return a + b;
}

И вот наш тестовый пример:

it('should add two numbers', function() {
  expect(add(2, 3)).to.equal(5);
});

В этом примере мы используем функцию expect для передачи вывода функции add в Chai. Затем мы используем функцию to.equal, чтобы сделать утверждение, что выход равен 5.

Если утверждение верно, тестовый пример будет пройден. Если оно ложно, тестовый пример завершится неудачно.

Утверждение типа переменной

Иногда вам может понадобиться убедиться, что переменная имеет определенный тип. Chai предоставляет для этого функцию to.be.a.

Вот пример:

it('should be a string', function() {
  expect(myVariable).to.be.a('string');
});

В этом примере мы используем функцию to.be.a, чтобы подтвердить, что myVariable является строкой.

Утверждение длины массива или строки

Вы также можете использовать Chai, чтобы указать длину массива или строки.

Вот пример:

const myArray = [0, 1, 2];

it('should have the correct length', function() {
  expect(myArray).to.have.lengthOf(3);
});

В этом примере мы используем функцию to.have.lengthOf, чтобы утверждать, что myArray имеет длину 3.

Утверждение наличия или отсутствия свойств

Вы можете использовать Chai, чтобы подтвердить наличие или отсутствие свойств у объекта.

Вот пример подтверждения наличия свойства:

const myObject = { 'name': 'some name' };

it('should have the correct property', function() {
  expect(myObject).to.have.property('name');
});

А вот пример подтверждения отсутствия свойства:

const myObject = { 'name': 'some name' };

it('should not have the incorrect property', function() {
  expect(myObject).to.not.have.property('age');
});

Создание сложных утверждений

Иногда вам может понадобиться сделать более сложные утверждения о вашем коде. Чай предоставляет множество функций, позволяющих это сделать.

Например, допустим, мы хотим убедиться, что переменная является массивом и содержит определенный набор значений. Вот как мы могли бы это сделать:

const myArray = [-2, 0, 1, 2, 3, 4, 5];

it('should have the correct values', function() {
  expect(myArray).to.be.an('array').that.includes(1, 2, 3);
});

В этом примере мы используем функцию to.be.an, чтобы подтвердить, что myArray — это массив, и функцию that.includes, чтобы подтвердить, что он содержит значения 1, 2 и 3.

В этих тестовых примерах мы используем функции to.have.property и to.not.have.property, чтобы подтвердить наличие или отсутствие свойств name и age в myObject.

Утверждение броска ошибки

Иногда вам может понадобиться убедиться, что функция выдает ошибку при определенных условиях. Chai предоставляет для этого функцию to.throw.

Вот пример:

it('should throw an error', function() {
  expect(myFunction).to.throw();
});

В этом тестовом примере мы используем функцию to.throw, чтобы подтвердить, что myFunction выдает ошибку.

Подведение итогов

Вот и все! Теперь вы знаете основы использования Chai для написания тестовых случаев для вашего кода JavaScript. С этими инструментами в вашем арсенале вы сможете писать мощные и элегантные наборы тестов в кратчайшие сроки.

Удачного тестирования!

Статья Исправьте свой чай и изучите искусство утверждений одновременно была впервые опубликована в четверг, 05 января 2023 года, в Блоге технических разработчиков. Для получения новейшего актуального контента, только что из печи, посетите https://techdevblog.io и подпишитесь на нашу рассылку!