我有一个项目,我想将测试从rhino移到nodejs(rhino只需要很长时间才能启动并加载envjs)。这是当前的阻挡者,然后才能继续前进:
ExampleSingleton = new function () {
var something = someFunction () {/*Does something*/}
$(window).bind('resize', something);
}();
这抱怨窗口没有被定义 - 我不知道如何获得我在shell中创建的'window'(#!/ usr / bin / env node)脚本(见下文,请原谅)混乱,因为我已经达到“尝试任何事情和所有事情”的要点。)
var dom = require("jsdom").jsdom()
var window = global.window = dom.createWindow();
global.jQuery = require("jQuery");
global.$ = global.jQuery;
....
require("path/to/file"); //This is where it breaks, before the tests even start
我也尝试过阅读和评估,但这并没有多大帮助,当然错误被掩盖了,因为它是一个匿名函数。
我想在这里做不可能的事吗?或者是否有一个非常简单的浏览器友好的东西,我可以做到这一点?
答案 0 :(得分:2)
您是否考虑过使用PhantomJS代替节点?
PhantomJS是一款带有JavaScript API的无头WebKit。它有快速和 对各种Web标准的本机支持:DOM处理,CSS选择器, JSON,Canvas和SVG。
PhantomJS是现场快速无头测试的最佳解决方案 抓取,页面捕获,SVG渲染器,网络监控等等 其他用例。
因为它是真正的浏览器,所以您不需要jsdom或envjs。 JavaScript continuous testing with QUnit, PhantomJS and Powershell可能会帮助您入门。