Javascript Jasmine:TypeError:无法读取属性';toLowerCase';未定义的

Javascript Jasmine:TypeError:无法读取属性';toLowerCase';未定义的,javascript,unit-testing,jasmine,Javascript,Unit Testing,Jasmine,我有一个函数,它检查数组(names\u数组)中是否存在名称。如果存在,则返回true;如果不存在,则将名称推送到names\u数组,并为每个名称创建表行并附加到表中 使用Jasmine,我必须测试函数是否返回true或false。 为此,我将传递变量名称、数组和名称的值。 但是代码$('#add_name').val()仍然存在未定义的变量错误 我要测试的javascript代码是 function check_names(names_array) { var name = $('#a

我有一个函数,它检查数组(names\u数组)中是否存在名称。如果存在,则返回true;如果不存在,则将名称推送到names\u数组,并为每个名称创建表行并附加到表中

使用Jasmine,我必须测试函数是否返回true或false。 为此,我将传递变量名称、数组和名称的值。 但是代码$('#add_name').val()仍然存在未定义的变量错误

我要测试的javascript代码是

function check_names(names_array) {
    var name = $('#add_name').val().toLowerCase();
    //check if name is there in names_array if yes return true, if not then return false and push the item to the names_array
    }
我正在使用的Jasmine代码

describe("On Name Create",function (){
var names_array = ["add","bad","sad","dad"];
   it("Check for names",function (){
        var name = "add";
        expect(check_names(names_array)).toBeTruthy();
   });
 });

由于我是Jasmine的新手,我是否遗漏了什么?

您应该首先检查$('#add_name).val()是否不为空


也可能您应该尝试$('#add_name).eq(0).val()

您之所以会遇到此错误,是因为
$('#add_name').val()
没有为
toLowerCase()
函数提供任何值


确保
#add_name
,HTML代码中的此id具有一定的值。您可以在代码中使用之前将其打印出来。

谢谢您的回复。。我知道错误是由于$('#add_name').val()引起的,它无法获取该值。我使用Jasmine进行单元测试。。我不知道如何模拟$('add_name').val()的值。。我尝试了var name=“add”;但是它不起作用。。