Подтвердить что ты не робот

Структурная схема тестирования для node.js, которая специально поддерживает тестирование асинхронного кода?

В модуле node.js есть <30 < → node.js. <... >

Какие рамки наиболее популярны? И каковы их плюсы и минусы?

Я ищу фреймворк, который поддерживает модульное тестирование кода с большим количеством асинхронных обратных вызовов (возможно, как и большинство других проектов node). Кроме того, я ищу что-то довольно простое и маленькое, чем сложное.

До сих пор я изучал:

  • Nodeunit прост и поддерживает асинхронный код, позволяя вам определить, сколько утверждений вы ожидаете вызвать и когда тест будет выполнен.
  • Vowsjs выглядит интересным. Позволяет вам хорошо структурировать тесты и поставляется со многими расширенными функциями. Не уверены, действительно ли эти функции полезны, через или если они скорее стоят на вашем пути?
4b9b3361

Ответ 1

expresso и vows - это самые популярные варианты. Хотя есть много хороших вариантов. Обновление: По состоянию на ноябрь 2011 Mocha является преемником expresso, в соответствии с Readme.md в expresso репозиторий. should.js часто используется с Mocha, чтобы разрешить Утверждения стиля BDD.

Независимо от того, что вы выберете, я рекомендую использовать gently, чтобы заглушить основные или сторонние модули.

Я использую/поддерживаю testosterone, небольшую платформу тестирования, которая запускает тест по серийному номеру, чтобы вы могли злоупотреблять осторожно. Не так много людей используют его, хотя.

Ответ 2

С марта 2012 года мы использовали Nodeunit и не оглядывались назад. Он прост и удобен в работе, он позволяет выбирать между уровнями модулей и уровня класса (настройка/отключение), он получает разумный набор встроенных утверждений, а его инструмент командной строки очень гибкий. Попробуйте объединить его с nodemon.

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

Ответ 3

QUnit так же просто, как может быть создана платформа тестирования, и поддерживать асинхронные вызовы. Это инструмент для тестирования JQuery, поэтому вы можете быть уверены, что он очень поддерживается и работает хорошо.

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

Ответ 4

Я еще не использовал его, но как насчет Jasmine из Pivotal Labs?

Ответ 5

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

Я написал специально OKJS, потому что QUnit был настолько бесполезным асинхронным. QUINIT не улавливает исключения (!) И требует хакерского запуска() для отслеживания глубины.

Многие из тестовых фреймворков не имеют простой оболочки обратного вызова для тестирования тайм-аутов и исключений catching. Я не уверен, почему -callbacks лежат в основе асинхронного развития. =/

  setTimeout(function() {
    ok( true, "Passed and ready to resume!" );
    start();
  }, 1000);

OKJS ловит исключения в прослушивателях событий и отслеживает выдающиеся асинхронные запросы с помощью промежуточного триггера dead-man, который может вывести из строя тест.

  setTimeout( unit.callback("test callback is fired"), 500);
  setTimeout( unit.callback("callback fired, with subtests", function () {
        unit.assert("in callback, true === true", true,true);
  }),  500);

Хотелось бы увидеть эту поддержку стиля из корпоративных решений. Некоторые из других функций, которые поддерживает OKJS, - это тестовые блоки, которые выполняются последовательно (стиль рецепта), но ждут между блоками для событий, которые нужно разрешить.

Ответ 6

test-studio - это пакет npm, который обеспечивает мощный веб-интерфейс для модульного тестирования. В настоящее время он поддерживает только мокко и предоставляет такие функции, как выполнение отдельных или групп тестов и шаговый node -инспектор в отдельные тесты.

Подробнее об этом здесь.