我试图在Rails应用程序中使用Jasmine测试嵌套在jQuery函数中的JavaScript函数,如下所示:
jQuery(function(){ var javascriptFunction = function(){ ......正在测试的功能...... } }
当我运行Jasmine测试时,我收到以下错误:" ReferenceError:无法找到变量:javascriptFunction"
如果我将JavaScript函数放在jQuery函数之外,我就不再收到该错误;但是,JavaScript函数需要保留在jQuery函数中才能使应用程序的其余部分工作。
有没有办法指定Jasmine在jQuery函数中查找JavaScript函数?
答案 0 :(得分:0)
好的,现在我明白了你想要实现的目标。
没有办法测试你所做的事情,因为你在评论中描述它是匿名的。这里最好的方法是将代码添加到某个地方。可以在窗口,或者最好在某个地方的某个其他类。然后,您可以随时测试调用函数的结果。
您正在使用的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-jasmine