TypeError:Undefined不是一个constuctor(评估' selectList.append(options)')

时间:2017-11-29 03:01:45

标签: javascript jquery angularjs jasmine phantomjs

运行测试用例(Jasmine)时出现此错误: TypeError:Undefined不是一个constuctor(评估' selectList.append(options)')

我不确定为什么我的一些测试用例因此而失败。我的浏览器中的测试运行绝对正常,但在本地失败(Maven测试)。 (使用Jasmine,Phantom JS)。

这里我有一个editUser按钮,当点击隐藏时,弹出(更新和取消)按钮,这些按钮在此之前是隐藏的。

function userEditUser(id) {
   var grandParent = $('#updateUser' + id).parent().parent().parent();
   var updateUser = $('#updateUser' + id);
   updateUser.siblings().removeClass('hideElement');
   updateUser.addClass('hideElement');
   var column_authority = document.getElementById('name1');
   var name_list = ["A", "B", "C"];
   var selectList = document.createElement('select');
   selectList.setAttribute('name', 'userName');
   for(var i = 0; i <name_list.length; i++){
       var options = document.createElement('option');
       options.text=name_list[i];
       selectList.append(options);
   }
  column_authority.appendChild(selectList);

其中一个失败的测试用例:

 it('update button should not have a css class hideElement', function () {    
$('button[name="updateUser"]').click();
expect($('button[name="updateBtn"]')).not.toHaveClass('hideElement');

});

但是在功能的这一点上失败了: selectList.append(选项)

1 个答案:

答案 0 :(得分:1)

我猜Phantom JS无法识别追加功能。现在,事情对我来说很好,

all I did is changed
selectList.append(options); to 
selectList.appendChild(options);

此更改解决了我所有失败的测试用例。 非常感谢你们为我的问题提供解决方案的兴趣。