0

クラス「overlay」のdivとクラス「close-overlay」の閉じるボタンを含むhtmlビューがあります。次のようにJSに登録されたイベントがあります:

$(".overlay").click(function(e){
    var target = $(this); // overlay div

    target.removeClass("hide");

    return target;
});
$(".close-overlay").click(function(e){
    var target = $(e.target) // close-overlay btn
                            .closest(".overlay"); // overlay div

    target.addClass("hide");

    return target;
});

そして、以下のようにqunitでテストしました:

test("Basic Test", function(){
    equal($(".overlay").click().hasClass("hide"), false, "Overlay Click" );
    equal($(".close-overlay").click().hasClass("hide"), true, "Overlay Hide" ); 
});

最初のテストは合格していますが、2 番目のテストは失敗しています。理由がわからない!誰か助けてくれませんか?ありがとう。

4

1 に答える 1

1

2 番目のアサーションでは、.close-overlay要素に要素ではなく hide クラスがあることをテストしてい.overlayます。

したがって、テストは次のようになります。

test("Basic Test", function(){
    equal($(".overlay").click().hasClass("hide"), false, "Overlay Click" );
    var closeOverlayElement = $(".close-overlay");
    closeOverlayElement.click();    
    equal(closeOverlayElement.closest(".overlay").hasClass("hide"), true, "Overlay Hide");
});
于 2013-01-15T18:07:40.710 に答える