如何使用 jasmine 对 document.ready() 函数进行单元测试

ash*_*123 5 jquery document-ready jasmine

如何使用 Jasmine 测试 document.ready 块?更具体地说,如果我有一个像这样的块:

$(document).ready(
    function () {
        abc = true;
    }
});
Run Code Online (Sandbox Code Playgroud)

如何使用 Jasmine 测试文档准备好后是否调用了内部函数?

Ele*_*ena 5

您可以将代码重构为如下所示:

var onReady = function(){
    abc = true;
}

$(document).ready(onReady);
Run Code Online (Sandbox Code Playgroud)

和你的测试:

it("Tests abc", function() {
    onReady() ;
    expect(tesabctVar).toEqual(true);
});
Run Code Online (Sandbox Code Playgroud)


小智 3

如何使用 Jasmine 测试 document.ready 块?更具体地说,>如果我有一个像这样的块:

$(document).ready( function(){ abc= true; } );

我的理解是,您在上面的 $(document).ready 闭包中编写的代码是不可测试的。此链接很好地解释了如何使其更具可测试性:http://bittersweetryan.github.io/jasmine-presentation/#slide-17

如何使用 Jasmine 测试文档准备好后是否调用了内部函数?

m59 已经在上面的评论中回答了。