针对多个版本的jQuery运行jasmine测试

时间:2012-01-09 00:30:43

标签: javascript jquery unit-testing jasmine

设置单元测试(特别是使用Jasmine)的最佳方法是使用多个版本的jQuery进行测试。显而易见的方法是让全局测试页面只设置一系列iframe,但我想知道是否有办法在单个页面中实现它。作为一个天真的第一次刺,我尝试了以下,但未能进行任何测试。

有没有人有任何想法如何修改,或采取更好的方法?

function testSuite() {
    describe("jquery.flickbook", function() {
          it("makes testing JavaScript awesome!", function() {
            expect(true).toBeTrue();
          });
    });
}

function testAllJquerys() {
    var jqueryInclude = document.getElementById("jquery"),
        head = document.getElementsByTagName("head")[0],
        versions = "1.6,1.7.1,1.5.1".split(",");


    function runSuite() {
        describe("jquery-" + version, testSuite);
        switchjQuery();
    }

    function switchjQuery() {
        version = versions.shift();
    //  jQuery = $ = null;
        jqueryInclude = document.createElement("script");
        jqueryInclude.type = "text/javascript";
        if (jqueryInclude.addEventListener){  
          jqueryInclude.addEventListener('load', runSuite, false);   
        } else if (jqueryInclude.attachEvent){  
          jqueryInclude.attachEvent('onload', runSuite);  
        }  
        head.appendChild(jqueryInclude);
        jqueryInclude.src = "../../jquery/jquery-" + version + ".js";
    }

    switchjQuery()
}

testAllJquerys();

1 个答案:

答案 0 :(得分:1)

$ versions jQuery库可能会有所作为,但我自己还没有尝试过:

“在多个版本的jQuery中测试插件的优雅方式。 与QUnit(以及可能的其他测试框架)完美配合。“

https://github.com/protonet/jquery-versions