2013-04-10 61 views
0

我想通过qunit来检查我的js代码。我正在检查我知道的简单js代码。可有人请告诉我如何检查以下类型与qunit js代码?回答这个qustion将非常apraisible,使用QUnit进行Javascript测试

function check_person() { 
var no_adt = document.getElementById('adult').value; 
var no_chd = document.getElementById('child').value; 
var no_inf = document.getElementById('infant').value; 
if (no_inf > no_adt) { 
    alert('Number of Infants must be less than equal to number of Adults'); 
    return false; 
} 
if (parseInt(no_adt) + parseInt(no_chd) + parseInt(no_inf) > 9) { 
    alert('Please note there is a maximum of 9 passengers permitted on the search form'); 
    return false; 
}`enter code here` 
return true; 

}

回答

1
<script type="text/javascript"> 
     function check_person() { 
      var no_adt = document.getElementById('adult').value; 
      var no_chd = document.getElementById('child').value; 
      var no_inf = document.getElementById('infant').value; 
      if (no_inf > no_adt) { 
       alert('Number of Infants must be less than equal to number of Adults'); 
       return false; 
      } 
      if (parseInt(no_adt) + parseInt(no_chd) + parseInt(no_inf) > 9) { 
       alert('Please note there is a maximum of 9 passengers permitted on the search form'); 
       return false; 
      } 
      return true; 
     } 
     function assignValues(adult, child, infant){ 
      document.getElementById('adult').value = adult; 
      document.getElementById('child').value = child; 
      document.getElementById('infant').value = infant; 
     } 
     test("Test check_person", function(){ 
      assignValues(5,2,1); 
      ok(check_person()); 

      assignValues(2,1,5); 
      ok(!check_person(), "Number of Infants is less than equal to number of Adults"); 

      assignValues(7,2,5); 
      ok(!check_person(), "a maximum of 9 passengers permitted"); 
     }); 
    </script> 
    <body> 

     <div id="qunit-fixture"> 
      <input id="adult" /> 
      <input id="child" /> 
      <input id="infant" /> 
     </div> 
     <div id="qunit"> 

     </div> 
    </body> 

这是更好地修改你的功能,使之更容易测试:

function check_person(no_adt, no_chd, no_inf) { 
if (no_inf > no_adt) { 
    alert('Number of Infants must be less than equal to number of Adults'); 
    return false; 
} 
if (parseInt(no_adt) + parseInt(no_chd) + parseInt(no_inf) > 9) { 
    alert('Please note there is a maximum of 9 passengers permitted on the search form'); 
    return false; 
} 
return true; 
} 

然后你不需要HTML标记和assignValues():

test("Test check_person", function(){ 
     ok(check_person(5, 2, 1)); 

     ok(!check_person(5, 2 ,1), "Number of Infants is less than equal to number of Adults"); 

     ok(!check_person(7, 2, 5), "a maximum of 9 passengers permitted"); 
});