通过节点运行DOH测试 - '文档未定义'

时间:2014-01-29 14:34:13

标签: node.js dojo phantomjs doh doh-robot

我正在尝试通过命令行进行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 个答案:

答案 0 :(得分:0)

这不起作用,正是因为这个:

  

这是因为测试没有在幻像浏览器中旋转,所以   它无权访问浏览器变量?有没有办法   在浏览器中工作的dojo doh测试很容易在这里工作吗?

我不太了解DOH,它有什么可能,但你需要

a)模拟document

b)编写自己的grunt-task,它生成一个带有grunt-contrib-connect的连接服务器,并在该浏览器中运行测试

编辑:在DOH中进行模拟,请参阅this link(搜索Mocking methods