[英]Test Javascript Function Wrapped in jQuery using Jasmine
我正在尝试使用Jasmine在Rails应用程序中测试嵌套在jQuery函数中的JavaScript函数,如下所示:
jQuery(function(){var javascriptFunction = function(){...正在测试的功能...}}
当我运行Jasmine测试时,出现以下错误:“ ReferenceError:找不到变量:javascriptFunction”
如果将JavaScript函数放在jQuery函数之外,我将不再收到该错误; 但是,为了使应用程序的其余部分正常工作,JavaScript函数需要保留在jQuery函数中。
有没有一种方法可以指定Jasmine在jQuery函数中查找JavaScript函数?
好吧,现在我明白了您要达到的目标。
正如您在评论中所描述的那样,它是匿名的,因此无法测试您所做的事情。 最好的方法是将该代码作为功能添加到某处。 可以在窗口上,或者最好在某个地方的其他类上。 然后,您可以随时测试调用函数的结果。
您正在使用的JQuery ready函数实际上只是启动应用程序的一种方法。 它说“一切准备就绪,放手”。 在测试中,您希望这种情况能够发生并且具有可重复性,因此您不能依靠JQuery来做到这一点。
//Current working version
function doTheThing(){
if ($("#isac").length && $("#isac")[0].checked) {
$(".nested-form-container").show();
enableGraduatedCheckbox();
} else {
$(".nested-form-container").hide();
}
}
jQuery (function () {
doTheThing();
}
这是关于您要执行的操作的可测试性和相同建议的类似讨论。 https://softwareengineering.stackexchange.com/questions/204389/how-to-test-functions-or-the-code-inside-document-ready-using-茉莉花
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.