通过节点运行 DOH 测试 -- 'document is not defined'



我正在尝试通过命令行进行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)。

这是不起作用的,正是由于这个:

这是因为测试在Phantomjs浏览器中没有旋转,所以 它无法访问浏览器变量吗?有没有办法制作 Dojo DOH在浏览器中工作的测试很容易在这里工作?

我对DOH了解不多,还有什么可能,但是您需要

a)模拟document

b)编写自己的grunt任务,该任务用grunt-contrib-connect产生连接服务器,并在该浏览器中进行测试

编辑:有关在doh中进行嘲笑,请参阅此链接(搜索Mocking methods

最新更新