javascript的Jasmine测试
我正在学习jasmine框架为javascript编写单元测试。为了做到这一点,我尝试为我的javascript函数编写一个单元测试。但它没有成功 我的Javascipt函数如下:javascript的Jasmine测试,jasmine,Jasmine,我正在学习jasmine框架为javascript编写单元测试。为了做到这一点,我尝试为我的javascript函数编写一个单元测试。但它没有成功 我的Javascipt函数如下: Toggle.test=function(){ trackClick (): } var toggleButton =$(‘#toggleButton’); toggleButton.click(trackClick);
Toggle.test=function(){
trackClick ():
}
var toggleButton =$(‘#toggleButton’);
toggleButton.click(trackClick);
function trackClick() {
if (toggleButton.hasClass('open')){
trackingObject.getReady(function(){
trackingObject.trackt('o',‘eventId’,{
var1: “exp.kpy”,
var2: “exp.kcy"
});
});
}
else{
trackingObject.getReady(function(){
trackingObject.track('o','eventId',{
var1: “clp.kcy”,
var2: "clp.kcy"
});
});
}
}
为了测试上述功能,我编写了jasmine单元测试,如下所示:
describe(“TestTracking“,function(){
var toggleButton,
trackingObject;
beforeEach(function(){
toggleButton = $('#toggleButton');
window.trackingObject = {
getReady: function(arg){
},
track: function(args){
}
}
trackingObject=window.trackingObject
spyOn(trackingObject,“getReady”).and.callThrough();
spyOn(trackingObject,“track”).and.callThrough()
});
describe(‘Toggle’, function () {
it("Toggle expand", function () {
var open = 'open';
spyOn(toggleButton,'hasClass').and.callFake(function(open) {
return true;
});
Toggle.test();
expect(trackingObject.trackEvent).toHaveBeenCalledWith('o', ‘eventId’, {
var1: “exp.kpy”,
vr2: “exp.kcy”
});
});
});
我面临的问题是,当控件到达if(toggleButton.hasClass('open'){in trackClick()函数时,它的计算结果为false,即使我发现它是:
spyOn(toggleButton,'hasClass').and.callFake(function(open) {
return true;
});
谁能帮我解决这个问题
如果有任何帮助,我们将不胜感激。您能修改您的格式吗?因为我是通过手机发帖的,所以格式有点困难。