2012-08-09 5 views
0

텍스트 상자에는 일반 RequiredValidator를 사용할 수 있지만 레이블에는 사용할 수 없으므로 사용자 정의 유효성 검사기를 추가하고 JQuery 함수를 사용하여 유효성을 검사합니다. 모든 작품은 괜찮지 만 단위 테스트를하고 싶습니다.사용자 정의 검사기에서 QUnit으로 레이블을 테스트하는 방법은 무엇입니까?

나는,이 기능을 테스트하기 위해 수행해야 할 것입니다 어떤 변화 :

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 테스트 (또는 유사)와 :

: 여기
test("Servicing_Topup_Branch_label_is_valid", function() { 
    var span = $("span[id$=ValueLabel]"); 
    $(span).text(10 + " characters long"); 

    var args = { IsValid: true, Value: "" }; 
    LabelRequired_Validate($(span), args) 

    ok(args.IsValid == true, "Validation Passed!"); 
}); 

내 사용자 지정 유효성 검사기입니다
<asp:CustomValidator ID="LabelValidator1" runat="server" ErrorMessage="<%$Resources:Main,RequiredFieldWarning %>" 
     Display="Dynamic" ClientValidationFunction="LabelRequired_Validate" EnableViewState="False" 
     class="alertMsg"> 
    </asp:CustomValidator> 

답변

0

대상 및 테스트 기능을 약간 변경했습니다. 여기 그것이 작동하는 방법입니다.

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!"); 

}); 
대상으로

관련 문제