QUnit - 基本测试 - 检查字段值

QUnit - Basic test - check field value

本文关键字:字段 检查 QUnit 测试      更新时间:2023-09-26

我对QUnit很陌生。选择了一个简单的 JavaScript 函数来针对它编写一个 qunit 测试。这是函数:

function createSelectField(parent, elemid, value, collection) {
 var elem1 = document.createElement("select");
 elem1.id = elemid; 
      parent.appendChild(elem1);
 $("#" +  elemid).addOption(collection, false);
 if(value != null) {
         elem1.value = value ;
 }
 var oldvalue = value;
}

它创建一个选择字段,将其附加到父字段,向其添加一些选项(使用 JQuery 插件),并将默认值设置为传入的任何值。我正在尝试为这个函数编写两个测试,一个当值为空时,另一个当值是某个字符串时。假设测试它以检查字段的值。

这是我尝试过的:

module('Test createSelectField');
test('createSelectField() with no default value', function() {   
var parent = document.createElement("div");
createSelectField(parent, 'umbi', null, {"key1": "value1", "key2": "value2"});
var elem = $('#umbi');
equal(elem.val(), null, "No default value provided for the drop down");
}); 
test('createSelectField() with some default value', function() {   
var parent = document.createElement("div");
createSelectField(parent, 'bi', 'key1', {"key1": "value1", "key2": "value2"});
var elem = $('#bi');
equal(elem.val(), 'key1', "Default to key1 value");
}); 

首先,我尝试获取使用 document.getElementById 创建的元素,但不起作用,它返回 null。使用 JQuery 选择器似乎可以让我获得元素,但我看不到值(使用 FireBug 调试)(我什至不确定它是否给了我在函数中创建的元素)。我什至尝试从我的主函数返回元素,但仍然不起作用。我很困惑,也很慌张。我想编写单元测试我的javascript,但这几乎让我想放弃。帮助?!

由于您的元素不是插入页面,而是插入到您创建的div 中,因此 CSS 查询$('#umbi')无法像在文档内部那样工作。

$('#umbi', parent)将在父上下文中搜索它,即使元素不是 DOM 的一部分,它也会起作用。

但是对于您的测试,您只插入一个项目,您也可以通过 div.childNodes[0] 访问它。