2015-01-07 4 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

просмотров требуется документ для того, чтобы быть функциональным, так что имеет смысл проверить их ближе всего к реальной среде, где они живут (например, веб-браузер или безголовый браузер)

Не конечно же про глотку, но за ворчание, https://github.com/gruntjs/grunt-contrib-jasmine - отличный плагин

0

Мое решение состоит в том, чтобы использовать другой lib под названием jsdom, он издевается над объектом окна, который будет использоваться jquery.

, называемый ниже сверху каждого набора тестов (я просто завернул его в модуль и каждый раз требовал его сверху).

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

Но я лично до сих пор не рекомендовал этот метод, я предпочитаю phantomJs подход :)

+0

Эй спасибо вам помочь, но это не помогло :(это говорит о том, что объект HTML не имеет метод CreateWindow – rcarvalho

+0

, который использовал jsdom, который вы использовали u (npm instal xxxx?) – ChinKang

+0

У меня это в пакете. Json «jsdom»: «^ 1.0.0-pre.3» – rcarvalho

Смежные вопросы