Javascript 在命令行上使用jasmine和节点测试jquery视图,无窗口
在命令行上使用Javascript 在命令行上使用jasmine和节点测试jquery视图,无窗口,javascript,jquery,backbone.js,jasmine,Javascript,Jquery,Backbone.js,Jasmine,在命令行上使用jasmine测试我的主干应用程序时,我遇到了一个小问题,即当我的集合或视图使用jquery时,我没有可以使用的窗口,因此jquery抛出了无窗口错误 当然,我不能使用类似于jsdom的东西,因为这将在浏览器中实现视图时覆盖我的实际窗口。问题不是在实际的规范文件中使用jquery,因为我可以在这里使用jsdom 那么,有没有办法从我的视图或集合中将jquery设置为正确的版本?我尝试了以下操作,但jquery仍然无法看到窗口: if (global.window) { $
jasmine
测试我的主干应用程序时,我遇到了一个小问题,即当我的集合
或视图
使用jquery
时,我没有可以使用的窗口,因此jquery抛出了无窗口错误
当然,我不能使用类似于jsdom
的东西,因为这将在浏览器中实现视图时覆盖我的实际窗口。问题不是在实际的规范文件中使用jquery,因为我可以在这里使用jsdom
那么,有没有办法从我的视图或集合中将jquery设置为正确的版本?我尝试了以下操作,但jquery仍然无法看到窗口:
if (global.window) {
$ = require('jquery');
} else {
var jsdom = require("jsdom").jsdom;
global.window = jsdom().parentWindow;
$ = require("jquery")(window);
}
我建议您在KarmaJS(一种无头浏览器)的帮助下运行您的测试,这样您就可以在包括Windows在内的浏览器环境中运行所有东西。因此,如果不引入另一个测试框架(如Karma),就没有办法了?我希望用Jasmine来完成这一切实际上这不是一个框架,而是一个测试运行环境。我想你现在是和nodejs一起做的?我不知道窗口对象模拟有多可靠。我们刚刚使用了Karma,它成功了。太棒了,会给它一个goI会建议你在KarmaJS的帮助下运行你的测试-一个无头浏览器,所以你在浏览器环境中运行任何东西,包括窗口。所以没有办法不引入另一个测试框架,比如Karma?我希望用Jasmine来完成这一切实际上这不是一个框架,而是一个测试运行环境。我想你现在是和nodejs一起做的?我不知道窗口对象模拟有多可靠。我们刚刚使用了因果报应,它成功了。太棒了,我们会尝试一下