ikon999原创:JsUnit测试之一

作者:ikon999 发布于:2008年10月07日 18:05

一、    JUnit与JsUnit的比较
Jsunit是基于xUnit 架构之下实现的一个testing framework,JsUnit在具体构建一个测试实例的时候有很多特征、特点是与JUnit相同的。


JUnit                       JsUnit
Test类继承TestCase         测试页包含jsUnitCore.js
测试方法                   测试函数
Test类                     基于HTML的测试页
TestSuites                   基于HTML的测试集
多个测试运行工具           基于HTML/JavaScript的测试运行工具
setUp()和tearDown()方法    setUp()和tearDown()函数
在虚拟机中运行             在浏览器中运行
用Java编写                 用JavaScript编写
二、    下载jsunit
对于JsUnit,起步很简单,只需从JsUnit网站(www.edwardh.com/jsunit/) 下载JsUnit zip文件。把这个压缩文件解开,会得到一个jsunit文件夹,可以把Web服务器放在这里,这样整个团队或者整个组织就能更容易地使用JsUnit。 JsUnit的大部分“核心”都在jsunit/app目录中,在这里可以看到jsUnitCore.js、jsUnitTracer.js和 jsUnitTestManager.js,另外还有其他一些文件。如果你想运行具体的JsUnit测试,可以使用testRunner.html来运行 jsunit/tests目录中找到的任何测试页;
三、     编写测试用例
1、    编写要被测试的功能函数,建议写在一个单独的js文件中
test1.js
function add(value1, value2){
return value1 + value2;
}

function minus(value1, value2){
return value1 - value2;
}

function multiply(value1, value2){
return value1 * value2;
}

function divide(value1, value2){
return value1 / value2;
}
2、    建立一个测试页,引入jsUnitCore.js文件和功能函数js;
<script type=”text/javascript” src=”jsunit/app/jsUnitCore.js”></script>
<script type=”text/javascript” src=”test1.js”></script>
3、    编写测试函数
用JsUnit编写测试与用JUnit编写测试很相似。测试函数不能有任何参数,必须有一个前缀test,例如 testAdd()。
<script type=”text/javascript”>

var count = 0;

function setUp() //类比于JUnit中的setUp
{
count++;
}

function tearDown() //类比于JUnit中的tearDown
{

}

// 测试函数
function testAdd()
{
var result = add(4, 2);
assertEquals(6, result);
}

function testMinus()
{
var result = minus(4, 2);
assertEquals(2, result);
}

function testMultiply()
{
var result = multiply(4, 2);
assertEquals(8, result);
}

function testDivide()
{
var result = divide(4, 2);
assertEquals(2, result);
}

function testCount()
{
alert(count);
}

</script>
4、    运行测试
打开testRunner.html,输入测试页的地址,运行;
四、     断言方法
assert([comment], booleanValue)
assertTrue([comment], booleanValue)
assertFalse([comment], booleanValue)
assertEquals([comment], value1, value2)
assertNotEquals([comment], value1, value2)
assertNull([comment], value)
assertNotNull([comment], value)
assertUndefined([comment], value)
assertNotUndefined([comment], value)
assertNaN([comment], value)
assertNotNaN([comment], value)
fail(comment)
五、     Junit与jsunit测试的不同
1、    对于setup和tearDown方法,对成员变量的影响,执行多个测试方法jsunit是连续的,junit是互不影响的;因为在junit里由于每个测试方法都对应一个测试类,对成员变量是不影响的;
2、    测试方法的执行顺序:junit是采用反射的方法,找到测试方法,测试方法的执行顺序是不固定的;jsunit是一定按照文件中顺序执行的;

作者:ikon999
来源:北风技术专栏
原文链接:http://column.ibeifeng.com/51564/2008100794.shtml

( 内容完 )

添加收藏到:

您可能还对这些文章感兴趣:

  • 使用Apache mod_evasive防DDOS攻击
  • 在XFire中使用友好的接口参数名
  • 如何优化SQL Server数据库性能之SQL语句篇
  • 浅谈验证码(一什么是验证码)
  • iBatis已经更名为MyBatis,并搬迁到Google Code
  • JQuery在光标位置插入内容
  • struts2 文件上传和下载,以及部分源码解析
  • Spring集成XFire开发WebService
  • 详谈基于JSON的高级AJAX开发技术
  • 数据库设计三大范式应用实例剖析
  • 没有评论, 我来评论

    小贴士:评论需要管理员审核后才会显示。请不要发布与国家法律相抵触的言论,北风网将保留追究责任的权利。
    类似“顶”、“沙发”、“支持”之类没有营养的文字,对勤劳贡献的作者来说是令人沮丧的反馈信息。
    请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
    如果您发现自己的评论没有被审核或者不见了,请参考以上三条。

    每周之星

    陈臣陈臣

    七年Java和JEE开发经验,JEE应用设计和高级架构师,拥有Sun的多项Java和J2EE方面的技能认证,多年项目经理、技术部经理的管理经验。拥有全面、扎实的Java和JEE理论知识,丰富的JEE应用开发经验。

    更多作者:

  • Adam
  • ikon999
  • jk1234
  • jk2345
  • libin_8745
  • lifengxing
  • taohuang100
  • xingkong
  • 北风
  • 呆子
  • 子晨
  • 小白
  • 张章
  • 张维亮
  • 陈臣
  • 陶宝哥
  • 风风
  • 最新内容

    推荐内容

    标签

    分类