私は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プラグインを使用して)いくつかのオプションを追加し、渡されたものにデフォルト値を設定します。この関数の2つのテストを作成しようとしています。 null、および値が文字列の場合は1つ。フィールドの値をチェックするためにそれをテストするという仮定。
これが私が試したことです:
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でデバッグ)(関数内で作成した要素が表示されるかどうかさえわかりません)。main関数から要素を返そうとしましたが、それでも機能しません。私は混乱し、憤慨しています。javascriptのユニットテストを書きたいのですが、これはほとんど諦めたくなります。ヘルプ?!