2014-09-18 84 views
0

我試圖測試jQuery的addClass fnuction是否已被稱爲:間諜jQuery的addClass功能不能正常工作

var data = "<form>Login Methods:<ul><li>SMS</li><li>Voice</li></ul></form>"; 

function injectOption() { 
    console.log('in injectOption'); 
    data = $(data).addClass('some-class')[0].outerHTML; 

    console.log('data is now'); 
    console.log(data); 
} 

describe("Our data array", function() { 
    beforeEach(function() { 

    }); 

    it('jquery.addClass called', function() { 
     injectOption(); 
     spyOn($.fn, 'addClass'); 
     expect($.fn.addClass).toHaveBeenCalled(); 
    }); 
}); 

檢查出的jsfiddle here。不知何故,即使我可以在控制檯日誌中看到該類已添加,它總是會失敗...

回答

0

您的代碼有幾個問題。主要問題是您必須在致電injectOption()之前初始化間諜。

it('jquery.addClass called', function() { 
    spyOn($.fn, 'addClass'); 
    injectOption(); 
    expect($.fn.addClass).toHaveBeenCalled(); 
}); 

工作Fiddle