为了便于测试,我正在尝试通过命令行让我的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测试在浏览器中很容易地工作?
为了清晰起见,我使用的是运行上述命令的grunt-doh插件(https://github.com/gpbl/grunt-doh)。
发布于 2014-01-29 14:42:51
这是行不通的,正因为如此:
这是因为测试不是在phantomJS浏览器中进行的,所以它无法访问浏览器变量吗?是否有一种方法可以使dojo测试在浏览器中很容易地工作?
我对DOH不太了解,也不知道它有什么可能,但你需要
( a)模拟document
或
( b)编写自己的任务,该任务生成带有格朗特-接触-连接的连接服务器,并在该浏览器中运行测试。
编辑:对于在DOH中的嘲弄,请参见此链接 (搜索Mocking methods)
https://stackoverflow.com/questions/21434136
复制相似问题