2

是否可以使用 jsdom 的 jQueryify 功能来使用 jasmine-node?我想要做的是使用 NodeJS 来测试一些依赖于 DOM 存在的 JavaScript。

这是我尝试过的简化案例。当我运行脚本时,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 中测试东西是否有不同/更好的方法?

4

1 回答 1

2

好的,基于一个半相关问题的答案,我能够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()
    })
})
于 2011-06-02T22:25:02.147 回答