2017-10-03 12 views
0

다음과 같은 문제가 있습니다 :QUnit : # qunit-fixture 및 놀라운 결과

QUnit을 사용하여 간단한 JQuery 코드를 테스트하고 싶습니다. 내가 <div id="qunit-fixture></div> 안에 내 양식을 넣을 때

// code allows selection of all checkboxes inside form using .select-all checkbox  
$(function() { 
     $(".select-all").click(function() { 
     if (this.checked) 
      $(".robject").prop("checked", true); 
     else 
      $(".robject").prop("checked", false); 
     }) 
}) 

문제는 (이유 : 미래에 더 많은 테스트가)

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8"> 
    <meta name="viewport" content="width=device-width"> 
    <title>Javascript tests</title> 
    <link rel="stylesheet" 
    href="https://cdnjs.cloudflare.com/ajax/libs/qunit/2.4.0/qunit.min.css"> 
</head> 
<body> 
    <div id="qunit"> 
    </div> 
    <div id="qunit-fixture"> 
    <form> 
     <input type="checkbox" class="select-all"> 
     <input type="checkbox" class="robject r_1" name="" value=""> 
     <input type="checkbox" class="robject r_2" name="" value=""> 
     <input type="checkbox" class="robject r_3" name="" value=""> 
     <button type="button" name="button">Delete</button> 
    </form> 
    <script src="test.js"></script> 
    </div> 
    <script src="https://code.jquery.com/jquery-3.2.1.min.js"> 
    </script> 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/qunit/2.4.0/qunit.min.js"> 
    </script> 
    <script> 
    QUnit.test("start all unchecked, then check all", function (assert) { 
     assert.equal($('.robject:checked').length, 0); 
     $('.select-all').click(); 
     assert.equal($('.robject:checked').length, 3); 
    }); 
    </script> 
</body> 
</html> 

이 : 이건 내 HTML을

입니다 내가 주장의 오류 오류입니다 :

Expected: 3, Result: 0

미리 감사드립니다.

답변

0

qunit-fixture에 html을 삽입하고 그 후에 어설 션을 작성하려면 프로그래밍 방식으로 프로그래밍해야합니다.
예 :

QUnit.test("start all unchecked, then check all", function (assert) { 
    var fixture = $("#qunit-fixture"); 
    fixture.append("<form>addd your form here</form>"); 

    assert.equal($('.robject:checked').length, 0); 
    $('.select-all').click(); 
    assert.equal($('.robject:checked').length, 3); 
});