博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
玩转Javascript 给JS写测试
阅读量:5317 次
发布时间:2019-06-14

本文共 2286 字,大约阅读时间需要 7 分钟。

  给js写测试已经不是什么稀奇的事情了,最近项目里用了jasmine和JsTestDriver两种js测试框架。JsTestDriver易于与持续构建系统相集成并能够在多个浏览器上运行测试轻松实现TDD风格的开发。当在项目中配置好JsTestDriver以后,如同junit测试java文件一般,JsTestDriver可以直接通过运行js文件来进行单元测试。JsTestDriver框架本身就是JAVA的jar包,需要在本地运行并监听一个端口。JsTestDriver是xUnit测试框架领域的一个比较新的成员,它最初起源于Google。本文将介绍如何搭建一个JsTestDriver测试框架。

  首先简单介绍一下JsTestDriver的特点:

优点:

1.可以一次测试多个浏览器,使用方法是在启动服务时可以将多个浏览器的路径作为参数传进去。

2.测试运行得很快,因为不需要将结果添加到DOM中呈现出来,它们能够同时在任意多的浏览器中运行,未修改的文件浏览器会从缓存提取。

3.不需要HTML配件文件,仅仅只需提供一个或多个脚本和测试脚本,测试运行器运行时会创建一个空文件。

4.支持其它测试框架,可以测试其它测试框架写的测试代码,比如有对应的插件可以将QUnit和Jasmine测试代码转换成JsTestDriver的测试代码。

缺点:

不能在浏览器中测试,只能通过自动化工具或控制台运行。生成的结果不够直观。安装使用稍微有点麻烦,依赖于JAVA环境

 

搭建步奏:

一.编写测试test.js

1.给一个测试js文件写一个TestCase用来声明一个测试对象

2.写setUp,初始化被测对象

3.编写测试函数,js测试驱动程序提供了一个声明,让测试更容易阅读和维护方式向测试添加HTML。把有效的HTML在doc注释和js测试驱动程序将相应的DOM到一个变量,或者将其添加到文档的身体。

 

HtmlDeclaredInTest = TestCase("HtmlDeclaredInTest"); HtmlDeclaredInTest.prototype.setUp = function() {  //test utils object contains convenience functions  this.testUtils = new myapp.Greeter();}; HtmlDeclaredInTest.prototype.testVariableHtml = function() { /*:DOC mainDiv = 
Hello word.
*/ var child = this.testUtils.findFirstDiv(this.mainDiv); assertEquals("text", child.className); assertEquals("Hello word.", child.innerHTML);};

 

二.编写源文件source.js

1.写一个让测试通过的源代码

2.运行测试

myapp = {};myapp.Greeter = function() { };myapp.Greeter.prototype.findFirstDiv = function(element) {  var result, child ;     for ( i = 0; i < element.childNodes.length; i++) {    child = element.childNodes[i];    if (child.nodeType == 1 && child.tagName=='DIV')      result = child;  }     return result;};

三.搭建运行环境

1.在google下载JsTestDriver唯一需要的一个集成jar包——

 

2.添加配置文件jsTestDriver.jstd,YAML格式文件,或者默认文件为jsTestDriver.conf与jar包同一目录下。

server: http://localhost:9876load:  - src/*.js  - src-test/*.js

3.启动服务器

Java -jar JsTestDriver-1.3.5.jar --port 9876 --browser **/**/firefox.exe

访问 http://localhost:9876/capture

4.运行测试

java -jar JsTestDriver-1.3.5.jar  --tests all --config **/**/jsTestDriver.jstd

5.结果

Total 2 tests (Passed: 2; Fails: 0; Errors: 0) (0.00 ms)  Safari 528.16: Run 1 tests (Passed: 1; Fails: 0; Errors 0) (0.00 ms)  Firefox 1.9.0.10: Run 1 tests (Passed: 1; Fails: 0; Errors 0) (0.00 ms)

 

转载于:https://www.cnblogs.com/Alex--Yang/p/3417163.html

你可能感兴趣的文章
C语言栈的实现
查看>>
SRM 628 DIV2
查看>>
2018-2019-2 20165314『网络对抗技术』Exp5:MSF基础应用
查看>>
SecureCRT的使用方法和技巧(详细使用教程)
查看>>
自建数据源(RSO2)、及数据源增强
查看>>
关于View控件中的Context选择
查看>>
2018icpc徐州OnlineA Hard to prepare
查看>>
使用命令创建数据库和表
查看>>
linux下Rtree的安装
查看>>
PHP魔术方法之__call与__callStatic方法
查看>>
【模板】对拍程序
查看>>
【转】redo与undo
查看>>
Django 模型层
查看>>
dedecms讲解-arc.listview.class.php分析,列表页展示
查看>>
安卓当中的线程和每秒刷一次
查看>>
wpf样式绑定 行为绑定 事件关联 路由事件实例
查看>>
TCL:表格(xls)中写入数据
查看>>
Oracle事务
查看>>
String类中的equals方法总结(转载)
查看>>
标识符
查看>>