Jquery 如何在自定义验证器中使用QUnit测试标签?
您可以将常规RequiredValidator用于文本框,但不能用于标签,因此我添加了一个自定义验证器,并使用JQuery函数对其进行验证。所有的工作都很好,但我希望能够对其进行单元测试 要测试此功能,我需要做哪些更改:Jquery 如何在自定义验证器中使用QUnit测试标签?,jquery,unit-testing,validation,qunit,Jquery,Unit Testing,Validation,Qunit,您可以将常规RequiredValidator用于文本框,但不能用于标签,因此我添加了一个自定义验证器,并使用JQuery函数对其进行验证。所有的工作都很好,但我希望能够对其进行单元测试 要测试此功能,我需要做哪些更改: function LabelRequired_Validate(sender, args) { if (sender == $("#ctl00_cphMain_Agent2_Agent_Agent_LabelValidator1")[0]) { if (
function LabelRequired_Validate(sender, args) {
if (sender == $("#ctl00_cphMain_Agent2_Agent_Agent_LabelValidator1")[0]) {
if ($("#ctl00_cphMain_Agent2_Agent_Agent_ValueLabel")[0].innerText.length > 0) {
args.IsValid = true;
} else {
args.IsValid = false;
}
} else {
args.IsValid = true;
}
}
使用此QUnit测试(或类似测试):
这是我的自定义验证器:
<asp:CustomValidator ID="LabelValidator1" runat="server" ErrorMessage="<%$Resources:Main,RequiredFieldWarning %>"
Display="Dynamic" ClientValidationFunction="LabelRequired_Validate" EnableViewState="False"
class="alertMsg">
</asp:CustomValidator>
对目标函数和测试函数都做了一些更改。下面是它的工作原理 目标:
function LabelRequired_Validate(sender, args) {
if (sender == $("span[id$=LabelValidator1]")[0]) {
if ($("span[id$=ValueLabel]")[0].innerText.length > 0) {
args.IsValid = true;
} else {
args.IsValid = false;
}
} else {
args.IsValid = true;
}
}
在测试中:
test("Servicing_Topup_Branch_label_required_is_valid", function() {
expect(2);
var span1 = $("span[id$=LabelValidator1]");
var span2 = $("span[id$=ValueLabel]");
$(span2).text(18 + " characters long");
var args = { IsValid: true, Value: "" };
LabelRequired_Validate(span1[0], args)
ok(args.IsValid == true, "Not empty label returns Valid - Passed!");
$(span2).text("");
args = { IsValid: true, Value: "" };
LabelRequired_Validate(span1[0], args)
ok(args.IsValid == false, "Empty label returns NotValid - Passed!");
});
test("Servicing_Topup_Branch_label_required_is_valid", function() {
expect(2);
var span1 = $("span[id$=LabelValidator1]");
var span2 = $("span[id$=ValueLabel]");
$(span2).text(18 + " characters long");
var args = { IsValid: true, Value: "" };
LabelRequired_Validate(span1[0], args)
ok(args.IsValid == true, "Not empty label returns Valid - Passed!");
$(span2).text("");
args = { IsValid: true, Value: "" };
LabelRequired_Validate(span1[0], args)
ok(args.IsValid == false, "Empty label returns NotValid - Passed!");
});