JavaScript测试工具Test.AnotherWay介绍

JavaScript测试工具Test.AnotherWay介绍


        Test.AnotherWay是一种测试javascript和html代码的一种工具。我不想将它称之为测试框架,因为它仅仅是一个使用自然,通俗的约定,来运行测试和显示测试结果的web页面。
       
Test.AnotherWay的新特性:
  • 目前Test.AnotherWay支持Firefox 1.0, Opera 7.5 and 8, and IE 6;
  • Test.AnotherWay能够测试html页面,当测试运行的时候工具能够记录鼠标的输入事件并且重复他们(目前测试工具不能支持IE and versions of Opera prior to 8.0);
  • 支持测试异步代码;
  • 支持测试过程中的日志和调试输出信息。

相关文档:

  1.  Test.AnotherWay简介
  2. 测试的装载
  3. 测试计划和断言
  4. 如何查看程序运行状态
  5. 测试异步代码
  6. 测试web页面
  7. 模拟鼠标输入
  8. 其他的一些运行参数

Test.AnotherWay简介
    Test.AnotherWay为javascript语言提供了一种运行测试,查看结果的有效手段。Test.AnotherWay的模型类似于Test::Simple,但是比Test::Simple具有更好的用户接口。但是,TestAnotherWay于JsUnit有着本质上的区别。TestAnotherWay的设计目标是方便用户的装载和使用,当然可能还有其他一些令人感兴趣的特性:
  • Test.AnotherWay能够测试异步调用的代码;
  • Test.AnotherWay能够在不增加html页面代码的情况下测试html页面;
  • Test.AnotherWay提供一种简单的方法来比较html元素是否与期望的一致;
  • Test.AnotherWay支持对用户界面的测试:在测试运行过程中,它能够记录鼠标输入事件,并对此作出响应;
  • Test.AnotherWay能够通过日志的方式显示调试信息.
备注:
    目前Test.AnotherWay支持的浏览器包括:
IE 5.5 and 6.0, Mozilla/Firefox, Opera 7.5 and 8;
    鼠标事件的记录不支持IE,
Opera prior to 8.0. IE 6 SP2 还没有进行测试。
   
返回

测试的装载
    Test.AnotherWay的运行环境就是一个简单的web页面:run_tests.html,你可以用浏览器打开测试页面,运行测试,查看测试结果。Test.AnotherWay的运行效果如下图(不知道怎么处理这部分,所以我就截了个图,您可以在Test.AnotherWay的官方站点体验一下,刚才尝试贴个图上去,一直没有成功,以后弄明白了再补上去)
      注意:如果您运行了官方站点上的测试演示页面,那么或许您已经注意到了,默认情况下测试成功的测试结果是收缩起来的,测试失败的测试结果是展开的,实际上您可以通过点击测试名称来展开/收缩测试结果。

      您应该为run-tests.html提供一个被测试的页面列表,有三种途径可以做到这一点:
测试页面简介:
    每个测试页面应该包括一个和多个测试函数,这些测试函数应该以"test_"开头,当您点击run-tests.html页面上的run按钮的时候,测试页面将会被装载,测试函数将会被依次调用(不知道顺序是什么,应该没有明确的顺序,所以测试应该不以来测试的顺序,JUnit中是这样的,这是不知道是否也是这样?)每个测试函数都会接收一个test object的对象,您可以使用该对象的assertion方法来验证测试结果是否与期望相同,同时您也可以记录测试的结果。

< html >< head >< script  type ="text/javascript" >
<!--
function test_1( t )
{
    t.plan( 
1 ); // we will make one assertion
    t.ok( true"this is ok" ); // that's it
}


// -->
</ script ></ head >< body ></ body ></ html >


测试计划和断言
     任何一个测试函数都可以包含任意多个断言。如果一个测试函数中的所有断言都能通过验证,那么该测试就算测试通过,反之,如果有任何一个断言失败,那么该测试就算美哟通过测试。测试计划声明每个测试函数中断言的数量,这就要求预先统计测试函数中的断言数量,这就需要避免某些测试断言被忽略,造成整个测试能够被通过,但是实际上某些测试却是失败的。您可以通过plan方法来设置测试函数中断言的数量。
t.plan(  42  ); 
     如果你没有通过plan方法设置断言的数量,或者你懒得去统计断言的数量,那么你可以忽略掉plan方法,但是这样将会削弱你的测试(不知道危害究竟是什么,但是应该不会影响测试的结果),在测试结果中会输出"no plan"的警告信息。
     Test.AnotherWay支持如下断言: ok, fail, eq, like, html_eq. 每个断言的最后一个参数都是一个字符型的参数,该参数作为断言的识别码,是识别断言的唯一手段,在测试结果页面中紧邻测试的位置降会打印出该字符串。该参数是一个可选参数,但是如果你没有设置该参数,那么对于错误断言的定位查找降会是一件非常困难的事情。
ok断言:
    ok断言是最简单的断言,它接受两个参数,第一个参数是一个boolean型的值,第二个是字符型,对该断言进行描述;
t.ok( items.length > 1 " more than one item "  );
fail断言:
    fail断言适用与那种测试一定失败的地方,它接受一个字符型的参数,对该断言进行描述;
t.fail(  " no good "  );
eq断言:
    eq断言用来判断测试结果是否与期望结果一致,它接受3个参数:测试值,期望值,测试描述;
t.eq( 2+2, 4, "addition test" );
   eq断言能够比较所有的数据类型,包括数组和任意嵌套级别的对象。复合结构的对象同样能够进行比较,如果复合对象的每个组成部分均相等,那么复合对象也相等。这个定义是递归的,如果您的数据结构是循环引用的,eq方法将会很快崩溃掉。eq方法不适用用比较dom树,您可以用html_eq断言来进行dom树的比较。
like断言:
    like断言用来比较给定的字符串是否与期望的正则表达式相匹配,它接受3个参数,测试字符串,正则表达式,断言描述;
t.like(  " 15 " / [d] +/ " numbers match "  );
html_eq断言:
    html_eq方法用来检查两个html元素是否一致,它接受3个参数:测试的html要素,期望的html要素,描述。html要素必须是DOM HTML节点对象或者是字符串。
  t.html_eq( document.getElementById(  " sample_id "  ),
               
" <div id="sample_id" class="sample">some text</div> " ,
               
" compare sample_id div "  ); 
html字符串必须是well_formed格式的html字符串,因为在html_eq方法的内部实现中会首先把html字符串通过内联html转换成DOM节点,所以如果html字符串的格式不对,那么测试的结果也就没有多大的意义了。如果html_eq测试失败,在测试结果面板中将会打印出测试结果的html内容。
您可以在 这里查看Test.AnotherWay的测试示范代码。
如何查看程序运行状态
测试异步代码
测试web页面
模拟鼠标输入
其他的一些运行参数


翻译后记:
        最近比较忙,这篇小文章翻译了几天了也没有翻译完成,我会尽快把剩下的部分翻译完成。由于我在此之前并没有使用Test.AnotherWay的经验,所以可能有些地方翻译的会存在问题,希望大家能够指出来,我在以后的使用过程中,也会逐步完善本文的翻译。我会把以后自己的使用过程中碰到的问题在此记录,希望大家多多关注!!!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值