运行测试用例(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(选项)
答案 0 :(得分:1)
我猜Phantom JS无法识别追加功能。现在,事情对我来说很好,
all I did is changed
selectList.append(options); to
selectList.appendChild(options);
此更改解决了我所有失败的测试用例。 非常感谢你们为我的问题提供解决方案的兴趣。