我有如下代码:
$.ajax({ url: API + "item/" + item_id.replace('-',':'),beforeSend: function(xhr){xhr.setRequestHeader('x-customer',customer);},format: "json",success: function( data ){ var template_name = data.source + settings.overlay_style; $('#modal .modal-content').html(Handlebars.templates[template_name](data)); /* Handle missing avatars */ $('#modal-avatar-image').imagesLoaded() .progress( function( instance,image ) { if (!image.isLoaded) { image.img.src = "/images/404_avatar.svg"; image.img.alt = "The avatar for this user Could not be found. Showing placeholder"; image.img.title = "The avatar for this user Could not be found. Showing plac eholder"; } }); /* Handle missing main content */ $('.modal-img').imagesLoaded() .progress( function( instance,image ) { if (!image.isLoaded) { image.img.src = "/images/404_image.svg"; image.img.alt = "This image is lost in space. Could be removed by user or Could be lost in a remote tube"; image.img.title = "This image is lost in space. Could be removed by user or Could be lost in a remote tube"; } $('.modal-img').removeClass('loading'); }); });
我已经为这段代码写了几个测试,但我似乎无法让它执行:
var attrs = ['src','alt','title']; attrs.forEach( function(attr,idx,arr) { it('should set default ' + attr + ' for img#modal-avatar-image',function () { spyOn($,'ajax').and.callFake(function(e){ e.success({'source': 'twitter'}); }); openModal('test'); expect(val).tobedefined(); val = $($("#modal-avatar-image")[0]).attr(attr); if(attr === 'src'){ //expect the src to chnage from the old value expect(val !== src).toBeTruthy(); } }); }); attrs.forEach( function(attr,arr) { it('should set default ' + attr + ' for img.modal-img','ajax').and.callFake(function(e){ e.success({'source': 'twitter'}); }); openModal('test'); val = $($(".modal-img")[0]).attr(attr); expect(val).tobedefined(); if(attr === 'src'){ //expect the src to chnage from the old value expect(val !== src).toBeTruthy(); } }); });
输出:
Expected undefined to be defined. Error: Expected undefined to be defined. at Object.<anonymous> (/home/oleg/dev/hub/test/fed/api.scenerio.js:346:41) Expected false to be truthy. Error: Expected false to be truthy. at Object.<anonymous> (/home/oleg/dev/hub/test/fed/api.scenerio.js:350:53) Expected undefined to be defined. Error: Expected undefined to be defined. at Object.<anonymous> (/home/oleg/dev/hub/test/fed/api.scenerio.js:346:41) Expected false to be truthy. Error: Expected false to be truthy. at Object.<anonymous> (/home/oleg/dev/hub/test/fed/api.scenerio.js:365:53) Expected undefined to be defined. Error: Expected undefined to be defined. at Object.<anonymous> (/home/oleg/dev/hub/test/fed/api.scenerio.js:362:41) Expected undefined to be defined. Error: Expected undefined to be defined. at Object.<anonymous> (/home/oleg/dev/hub/test/fed/api.scenerio.js:362:41)
解决方法
原文地址:https://www.jb51.cc/jquery/176210.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。