使用 Jasmine-node 测试主干视图

testing backbone views with Jasmine-node

本文关键字:视图 测试 Jasmine-node 使用      更新时间:2023-09-26

我正在尝试使用jasmine-node测试我的主干视图,当我运行单元测试时,我遇到了Jquery的问题。

骨干网视图

var Backbone = require("Backbone"),
    $ = require('jquery');
    Template = require("mytemplate");
    Backbone.$ = $;
module.exports = Backbone.View.extend({// my view ...});

测试

 var Backbone       = require("Backbone"),
    MyView  = require("MyView");
 //specs ....

问题是:

我的观点:)效果很好。 但是当我运行测试时,它说"jQuery 需要一个带有文档的窗口"。我尝试使用 jsdom,但它对我不起作用:(

是否可以在Jasmine-Node中运行jQuery?

另外,我正在将 gulp 与 webpack 一起使用

谢谢你们

视图需要一个文档才能正常运行,因此在最接近它们所在的实际环境(例如 Web 浏览器或无头浏览器)中测试它们更有意义

不确定吞咽,但对于咕噜声,https://github.com/gruntjs/grunt-contrib-jasmine 是一个很好的插件

我的解决方案是使用另一个名为jsdom的库,它模拟了jquery要使用的窗口对象。

在每个测试套件的顶部调用以下内容(我只是将其包装在一个模块中,并且每次都需要它)。

global.window = require("jsdom")
                  .jsdom()
                  .parentWindow;
global.document = window.document;

但我个人仍然不推荐这种方法,我更喜欢phantomJs方法:)