如何进行高效JavaScript单元测试

发表于:2011-12-08 10:39

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:Hazem Saleh    来源:51Testing软件测试网采编

分享:

  运行命令后,您将看到第一轮结果,如清单 6 所示。

  清单 6.第一轮结果

  • Total 9 tests (Passed: 6; Fails: 3; Errors: 0) (16.00 ms)  
  •   Firefox 3.6.18 Windows: Run 3 tests (Passed: 0; Fails: 3; Errors 0) (8.00 ms)  
  •     ApplicationUtilTest.testValidateLoginFormBothEmpty failed (3.00 ms):   
  •     AssertError: Username is not validated correctly! expected "This field   
  •     is required" but was "" Error("Username is not validated correctly!   
  •     expected \"This field is required\" but was \"\"")@:0()@http://localhost  
  •     :9876/test/js-test/TestApplicationUtil.js:16  
  •  
  •     ApplicationUtilTest.testValidateLoginFormWithEmptyUserName failed (3.00 ms):   
  •     AssertError: Username is not validated correctly! expected "This field is   
  •     required" but was "" Error("Username is not validated correctly! expected   
  •     \"This field is required\" but was \"\"")@:0()@http://localhost:9876/test  
  •     /js-test/TestApplicationUtil.js:29  
  •  
  •     ApplicationUtilTest.testValidateLoginFormWithEmptyPassword failed (2.00 ms):   
  •     AssertError: Password is not validated correctly! expected "This field is   
  •     required" but was "" Error("Password is not validated correctly! expected   
  •     \"This field is required\" but was \"\"")@:0()@http://localhost:9876/test/  
  •     js-test/TestApplicationUtil.js:42  
  •       
  •   Safari 534.50 Windows: Run 3 tests (Passed: 3; Fails: 0; Errors 0) (2.00 ms)  
  •   Microsoft Internet Explorer 8.0 Windows: Run 3 tests (Passed: 3; Fails: 0;   
  •   Errors 0) (16.00 ms)  
  • Tests failed: Tests failed. See log for details.
  •   注意,在清单 6 中,主要问题出在 Firefox 上。测试在 Internet Explorer 和 Safari 上均可顺利运行。

      修复JavaScript代码并重新运行测试用例

      我们来修复损坏的JavaScript代码。我们将使用innerHTML替代innerText。清单 7显示了修复后的ApplicationUtil对象代码。

      清单 7.修复后的ApplicationUtil对象代码

  • appnamespace = {};  
  •  
  • appnamespace.ApplicationUtil = function() {};  
  •  
  • appnamespace.ApplicationUtil.prototype.validateLoginForm =  function(){  
  •     var error = true;  
  •     document.getElementById("usernameMessage").innerHTML = "";  
  •     document.getElementById("passwordMessage").innerHTML = "";    
  •  
  •     if (!document.getElementById("username").value) {  
  •         document.getElementById("usernameMessage").innerHTML =   
  •         "This field is required";  
  •         error = false;  
  •     }  
  •       
  •     if (!document.getElementById("password").value) {  
  •         document.getElementById("passwordMessage").innerHTML =   
  •         "This field is required";  
  •         error = false;  
  •     }         
  •  
  •     return error;         
  • };
  •   使用 --test all 命令行参数重新运行测试用例对象。清单 8 显示了第二轮运行结果。

      清单 8.第二轮运行结果

  • Total 9 tests (Passed: 9; Fails: 0; Errors: 0) (9.00 ms)  
  •   Firefox 3.6.18 Windows: Run 3 tests (Passed: 3; Fails: 0; Errors 0) (9.00 ms)  
  •   Safari 534.50 Windows: Run 3 tests (Passed: 3; Fails: 0; Errors 0) (5.00 ms)  
  •   Microsoft Internet Explorer 8.0 Windows: Run 3 tests (Passed: 3; Fails: 0; Errors 0)   
  •   (0.00 ms)
  •   如清单 8所示,JavaScript代码现在在IE、Firefox和Safari上都能正常运行。

      结束语

      在本文中,您了解了如何使用一个最强大的JavaScript单元测试工具(JsTestDriver)在不同的浏览器上测试JavaScript应用程序代码。还了解了什么是JsTestDriver,如何配置它,以及如何在Web应用程序中使用它来确保应用程序的JavaScript代码的质量和可靠性。

    55/5<12345
    21天更文挑战,赢取价值500元大礼,还有机会成为签约作者!

    精彩评论

    • dodmk
      2014-2-20 14:25:02

      没完全看懂~!

    • caixusheng
      2011-12-08 17:14:35

      楼主没讲清楚具体要点,最后的解决办法能不能再补充详细点啊,谢谢

    关注51Testing

    联系我们

    快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计

    法律顾问:上海漕溪律师事务所 项棋律师
    版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2022, 沪ICP备05003035号
    投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

    沪公网安备 31010102002173号