Выполнение тестов DOH через узел - "документ не определен"

Я пытаюсь заставить мои тесты DOH работать через командную строку для легкого тестирования. Однако я сталкиваюсь с некоторыми проблемами и нуждаюсь в некотором руководстве!

В настоящее время я использую следующий тестовый модуль:

define([
    "doh/runner",
    "dojo/query"
 ], function (
    doh,
    query
) {
    doh.register("Homepage Tests", [{
        name: "Sanity Check",
        runTest: function () {
            return doh.assertNotEqual("Cat", "Dog");
        }
    }]);
});

Работает в браузере нормально. Тем не менее, когда я запускаю следующую команду:

node path/to/dojo.js load=doh path/to/test/module.js

Я получаю следующую ошибку (несколько сокращенно):

 /public/bower_components/dojo/selector/_loader.js:5
  var testDiv = document.createElement("div");
          ^
  ReferenceError: document is not defined
  at /public/bower_components/dojo/selector/_loader.js:5:15

Это потому, что тест не запускается в браузере phantomJS, поэтому у него нет доступа к переменным браузера? Есть ли способ сделать так, чтобы тесты dojo doh, которые работают в браузере, работали здесь легко?

Для ясности я использую плагин grunt-doh ( https://github.com/gpbl/grunt-doh), который запускает указанную выше команду.

1 ответ

Решение

Это не будет работать, именно из-за этого:

Это потому, что тест не запускается в браузере phantomJS, поэтому у него нет доступа к переменным браузера? Есть ли способ сделать так, чтобы тесты dojo doh, которые работают в браузере, работали здесь легко?

я не знаю много о DOH, и что возможно с ним, но вам нужно

а) издеваться document

или же

б) написать свою собственную задачу grunt, которая порождает connect-сервер с https://github.com/gruntjs/grunt-contrib-connect и запускает ваши тесты в этом браузере

РЕДАКТИРОВАТЬ: для насмешки в DOH см. Эту ссылку (поиск Mocking methods)

Другие вопросы по тегам