我试图验证图像URLs
与Qunit
通过设置URL作为src
测试图像的属性,并与检查error
事件处理程序是否是顺利。 到目前为止,我所拥有的是:
test('image',function() {
var test_image = $('#test-image');
test_image.error(function(e) { // properly triggered
console.log(e);
is_valid = false;
// ok(false,'Issue loading image'); breaks qunit
});
var is_valid = true;
test_image.attr('src','doesntexist');
console.log('checking is_valid'); // occurs before error event handler
if (is_valid) { // therefore always evaluates to the same
ok(true,'Image properly loaded');
} else {
ok(false,'Issue loading image');
}
});
我的问题是,虽然error
事件触发正确,似乎以异步方式和评价后发生is_valid
(所以我做什么检查,结果将始终是相同的)。 我曾尝试加入ok()
内的断言error
事件处理程序,但我发现了以下错误:
Error: ok() assertion outside test context
我怎么可以运行基于内部进行处理的断言error
事件处理程序?
PS:如果我插入一个alert('test');
检查前is_valid
它工作正常(与错误处理程序是异步的,确认的问题),但你可以想像是不能接受的。 我试着使用setTimeout
拖延if语句的执行,但其带来的断言正文错误。