0
我试图让我的DOH测试通过命令行工作,以便于测试。但是,我遇到了一些问题,需要一些指导!通过节点运行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)。
我将如何去嘲笑浏览器变量?第二个是我正在倾向但试图避免的选项 – streetlight
我认为你将不得不嘲笑整个DOM。你可以试试jsdom(https://github.com/tmpvar/jsdom)。但是,我会用后一种选项运行,因为您可能想在不同的浏览器中进行测试。在代码中将应用程序逻辑与DOM操作分开更好,然后您可以轻松测试逻辑,而无需模拟浏览器/ DOM。然后可以在一组单独的测试中测试代码的DOM操作部分。这当然是一种理想主义的方法,而且不可能花费太多时间。只要它可以实现它值得的目标。 –