Nodeunit - Магистраль - Require.js: Объединение
Я пытаюсь использовать Nodeunit для тестирования своих моделей Backbone, а позже я бы хотел протестировать и другие компоненты. Основная причина, по которой я использую Nodeunit, заключается в том, что мои серверные тесты уже используют его, и я хотел бы придерживаться одной платформы тестирования.
Это хорошая идея? Я предпринял одну реальную попытку настроить модульный тест, но он терпит неудачу, когда я пытаюсь потребовать библиотеки подчеркивания и магистрали:
Error: Cannot find module 'underscore'
Можно ли вообще использовать для этого узел узлов, а если нет, то какой будет рекомендованная среда модульного тестирования для тестирования приложения Backbone?
1 ответ
Скорее всего, вы не включили конфигурацию RequireJS в html вашего тестового приложения NodeUnit. Или, если вы, возможно, NodeUnit не обслуживает динамический контент таким же образом. Я не использовал его раньше, но столкнулся с аналогичной проблемой с Жасмин.
С подходом жасмина я должен был сделать что-то вроде этого:
# coffeescript #
TEST_ENV = (typeof window['jasmine'] == 'object')
prefix = if TEST_ENV then '/public' else ''
baseUrl = prefix + '/javascripts'
В мире жасмина (внутри рельсов) папка /public обслуживается вне фактического /public маршрута. (Обычное обслуживание рельсов предполагает, что папка /public на самом деле является корневым маршрутом.) Итак, этот бит кода проверяет тестовый контекст и добавляет префикс /public к baseUrl. Затем в моей конфигурации requireJS я назначаю этот baseUrl.
Это может быть та же проблема, что и у вас с NodeUnit.
Для получения дополнительной информации о том, как я это настраиваю, а также о специальной интеграции RequireJS + Jasmine, см. Мой пост в блоге.