如何给Javascript代码做单元测试

javascript是很容易让人头疼的语言,不过如果能引入单元测试,那你的头疼似乎能得到些许的减缓。现在已经有一些javascript的单元测试工具存在了,今天我要介绍的是Dr Nic Williams开发的

JsUnitTest – JavaScript Unit Testing framework

 

JsUnitTest是一个纯用javascript开发的单元测试框架,通过引入它,你在浏览器中就可以运行你的单元测试代码。

 

JsUnitTest的使用:

1、从http://jsunittest.com/ 下载最新的JsUnitTest代码。

2、创建一个测试用的html,在这个html中引入你要测试的类库和JsUnitTest的js和css文件,并建立一个id为testlog的div块用来显示测试结果。

3、编写单元测试

  new Test.Unit.Runner({
    setup: function() {
    },
    
    teardown: function() {
    },
    
    testMethod1: function() { with(this) {
    }},
  }); 
 

 

以下是一个完整的单元测试示例:

<html>
<head>
  <title>test</title>
  <script src="jsunittest.js" type="text/javascript"></script>
 <link rel="stylesheet" href="unittest.css" type="text/css" />
  <script>
      var MyObject = function(){};
    MyObject.prototype.method1 = function(){return 1;};
  </script>
</head>
<body>
 <div id="testlog"></div>
<script type="text/javascript">
  new Test.Unit.Runner({
      myObj: null,
    setup: function() {
        this.myObj = new MyObject();
    },
   
    teardown: function() {
      this.myObj = null;
    },
   
    testMethod1: function() { with(this) {
      assert(this.myObj.method1() == 2, "method1 return must be 2.");
    }},
  });
</script>
</body>
</html>


 

 

JsUnitTest支持的断言方法:

assert: function(expression, message)
assertEqual: function(expected, actual, message)
assertNotEqual: function(expected, actual, message)
assertEnumEqual: function(expected, actual, message)
assertEnumNotEqual: function(expected, actual, message)
assertHashEqual: function(expected, actual, message) 
assertHashNotEqual: function(expected, actual, message)
assertIdentical: function(expected, actual, message)
assertNotIdentical: function(expected, actual, message)
assertNull: function(obj, message)
assertNotNull: function(obj, message)
assertUndefined: function(obj, message)
assertNotUndefined: function(obj, message)
assertNullOrUndefined: function(obj, message)
assertNotNullOrUndefined: function(obj, message)
assertMatch: function(expected, actual, message)
assertNoMatch: function(expected, actual, message)
assertHasClass: function(element, klass, message)
assertHidden: function(element, message)
assertInstanceOf: function(expected, actual, message)
assertNotInstanceOf: function(expected, actual, message)
assertRespondsTo: function(method, obj, message) 
assertRaise: function(exceptionName, method, message)
assertNothingRaised: function(method, message)
assertVisible: function(element, message) 
assertNotVisible: function(element, message)
assertElementMatches: function(element, expression, message)
 

 

 


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值