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

OK、この半関連の質問への回答に基づいて、実行することができました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 に答える