Как использовать jsdom.jQueryify с jasmine-node? - PullRequest
2 голосов
/ 03 июня 2011

Можно ли использовать jasmine-node с помощью функции jQueryify jsdom?Я пытаюсь использовать NodeJS для тестирования JavaScript, который зависит от наличия DOM.

Вот сокращенный пример того, что я пробовал.Когда я запускаю сценарий, jasmine-node распознает спецификацию, но не запускает expect():

var fs = require('fs'),
    jsdom = require('jsdom'),
    window = jsdom.createWindow(),
    jasmine = require('jasmine-node')

describe("jQueryify", function() {
    it('should run the test!', function () {
        jsdom.jQueryify(window, function (window, jquery) {
            expect(1).toEqual(1)
        })
    })
})

Альтернативно, есть другой / лучший способ для тестирования вещей в NodeJS, который предполагает браузерсреда?

1 Ответ

2 голосов
/ 03 июня 2011

ОК, основываясь на одном этом ответе на полусвязанный вопрос , я смог заставить expect() выполнить. Я предполагаю, что ответ на мой вопрос не в том, чтобы использовать встроенную функцию jQueryify, а в том, чтобы использовать jQuery «вручную».

var fs = require('fs'),
    window = require('jsdom').jsdom('<html><head></head><body></body></html>').createWindow(),
    script = window.document.createElement('script'),
    jasmine = require('jasmine-node')

describe("jQueryify", function() {
    it('should run the test!', function () {
        script.src = './path/to/jquery.js'
        script.onload = function () {
            expect(typeof window.$).toEqual('function')
            asyncSpecDone()
        }
        window.document.head.appendChild(script)
        asyncSpecWait()
    })
})
...