我正在尝试通过命令行进行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)。
答案 0 :(得分:0)
这不起作用,正是因为这个:
这是因为测试没有在幻像浏览器中旋转,所以 它无权访问浏览器变量?有没有办法 在浏览器中工作的dojo doh测试很容易在这里工作吗?
我不太了解DOH,它有什么可能,但你需要
a)模拟document
或
b)编写自己的grunt-task,它生成一个带有grunt-contrib-connect的连接服务器,并在该浏览器中运行测试
编辑:在DOH中进行模拟,请参阅this link(搜索Mocking methods
)