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