Все о тестировании

  • Общая идея всех сред тестирования заключается в том, чтобы позволить разработчикам писать код, определяющий поведение функции, модуля или класса.
  • Тестирование одной функции за раз уязвимо для ложноотрицательных и ложноположительных результатов.

Почему мы тестируем?

  • Чтобы убедиться, что все работает.
  • Повысьте гибкость и уменьшите боязнь кода.

Автоматические тесты известны как Спецификации. Они:

  • Сделайте совместную работу проще.
  • Производить документацию.

Как мы тестируем

  • Среда тестирования: запускает тесты и представляет их пользователю.
  • Библиотеки утверждений: основа написанных тестов, код, который мы используем для написания наших тестов.
  • Mocha: очень гибкая среда тестирования JS; поддерживает различные библиотеки утверждений.
  • Специфический для предметной области язык: относится к компьютерному языку, специализированному для определенной цели.

Что мы тестируем?

  • Публичный интерфейс:
  • Спросите себя: «Каков публичный интерфейс модуля или класса, который я пишу?»
  • Если вы сомневаетесь, убедитесь, что по крайней мере самые важные и/или сложные части этого интерфейса работают должным образом.

Пирамида тестирования

Модульные тесты: наименьшая единица тестирования.

  • Используется для тестирования мельчайших деталей по отдельности, прежде чем собирать все вместе.
  • Тестирует ОДНУ ВЕЩЬ.

Интеграционные тесты: проверьте взаимодействие между двумя частями вашего приложения.

От начала до конца . Самые близкие автоматические тесты подходят для проверки фактического взаимодействия с пользователем вашего приложения.

Чтение тестов

  • Самое главное в тесте — это то, что он читабелен и понятен.
describe("avgValue()", function () {
  it("should return the average of an array of numbers", function () {
    assert.equal(avgValue([10, 20]), 15);
  });
});
  • avgValue() => Функция, которую мы будем тестировать.
  • it("string") => описывает желаемый результат.

Разработка через тестирование

  • TDD — это быстрый повторяющийся цикл, в ходе которого сначала определяется, что должен делать фрагмент кода, и пишутся тесты для этого поведения, прежде чем писать какой-либо код.