2015-01-07 48 views
0

我想用jasmine-node測試我的骨幹視圖,並且當我運行單元測試時,我正面臨Jquery的問題。用Jasmine-node測試骨幹視圖

骨幹查看

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但did'n爲我工作:(

是有可能茉莉花節點內的jQuery運行?

也,我使用一飲而盡用的WebPack

謝謝你們

回答

0

意見,以便爲功能要求的文件,所以它更有意義的最接近測試他們對他們生活在(如Web瀏覽器或模擬瀏覽器)

不是實際的環境確定一口氣,但對於咕嚕咕嚕,https://github.com/gruntjs/grunt-contrib-jasmine是一個很棒的插件

0

我的解決方案是使用另一個名爲jsdom的庫,它嘲笑jquery使用的窗口對象。

在每個測試套件的頂部調用下面的代碼(我只是將它封裝在一個模塊中,並且每次都要求它在頂部)。

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

但我個人還是不推薦使用這種方法,我更喜歡phantomJs方法:)

+0

嘿感謝您的幫助,但是這並沒有工作:(它說,HTML對象有沒有方法CreateWindow的 – rcarvalho

+0

哪個jsdom軟件包你用過?(npm instal xxxx?) – ChinKang

+0

我在package.json中有這個「jsdom」:「^ 1.0.0-pre.3」 – rcarvalho