社区
Java EE
帖子详情
[调查]大家在开发过程中一直进行单元测试工作么?
Patrick_DK
2003-02-13 10:46:44
例如JUnit,想知道大家对单元测试的看法和利用/使用情况
...全文
45
41
打赏
收藏
[调查]大家在开发过程中一直进行单元测试工作么?
例如JUnit,想知道大家对单元测试的看法和利用/使用情况
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
41 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hanty
2003-03-13
打赏
举报
回复
目前代码需要进行
1、代码自测
2、交叉检视
3、代码复测
4、提交测试
shidu
2003-03-10
打赏
举报
回复
学习。
coast1982
2003-03-07
打赏
举报
回复
哈哈!!
太深奥了! 小弟听不动! 不知有没有更形象得例子呀!
谢谢啦!!
javashit
2003-03-06
打赏
举报
回复
不好意思,高手门都知道了
也要给菜鸟介绍一下呀
呵呵
javashit
2003-03-06
打赏
举报
回复
JUnit就是对程序代码进行单元测试的一种Java框架。通过每次修改程序之后测试代码,程序员就可以保证代码的的少量变动不会破坏整个系统。要不是有Junit这样的自动化测试工具,代码的的反复测试简直会把人累死而且还可能不准确。现在好了,测试过程可以频繁进行而且还是自动的,所以你可以令程序错误降低到最少。
不过,创建测试案例可也不是个简单的过程,当事人得清楚地知道代码的有关情况及其运做机理。你必须小心创建Junit执行的单元测试,保证测试能像在真实环境下运行那样严格地检查代码。本文首先讨论如何创建单元测试,然后阐述各个测试部分如何组合起来。
创建测试案例
Junit的测试案例由扩展Junit框架的Java类编写。这些类拥有大量的方法,每一种方法测试特定的功能或者说代码单元(unit)。比方说,对简单财务管理软件来说,测试就可能包括用户名和密码的登录过程。其次则可能要检查存款余额、保证资产节余的正确性。第3个测试可能涉及到模拟从帐户中取钱的过程。通常,你编写的测试案例越多,测试的完整性也就最好。你应当测试产品的全部功能领域:只有这样做才能保证系统的局部变动不至于影响到系统的其他部分。
创建新的测试案例很容易。正如你在清单A中看到的那样,编写新的测试案例需要创建新的Java类。新类必须扩展TestCase类,同时包含一个构造器调用基类的构造器。
新类叫做test harness,这就是你编写自己测试程序的场所。每次调用测试的时候,Junit就会执行setUp()方法初始化你需要的任何值。接着,它会调用一个测试案例然后再调用tearDown() 取消初始化并进到下一个测试。
这个简单的测试工作由两个测试组成,testBooleanTrue()和testBooleanFalse()。每一个测试都必须公开声明而且必须调用Junit通知测试状态。在这种情况下,我们令某一个测试总是成功而另一个则总是失败。
示例
现在就让我们详细地讨论一个测试案例。在我们的例子里,我们将对Xerces XML解析器进行测试,该解析器可以从Apache XML项目免费获取。我们还测试一个简单的XML文档,如清单B所示。
我们的测试案例如清单C所示。
XMLTest.java测试案例包含两个测试。第1个是testPersonCount(),它查看XML文档中列出的人员数是否在0和10之间。如果是测试案例就给assertTrue()方法返回true,测试就算成功了。可是,如果项目太少或者太多那么测试就会失败。另一个测试保证人员“James Scheinblum”也包含在文件之内。我们通过编辑Example.xml文档的方式尝试了这两个测试。
测试案例采用了setUp() 和 tearDown() 方法来保证每一次测试都会重载XML文档。假如扔出了异常,比如混乱的XML文档或者不能打开文档阅读等等,测试会调用失败的方法,经过它告诉Junit测试失败,而失败结果则被传递给assertTrue()。两种不同的断言都在JavaDocs for Junit中文档化了,详细内容请看这里。
既然已经创建了我们自己的测试,接下来就该运行测试了。为此还得首先创建一个测试包。
创建测试包
所谓测试包(test suite)其实就是同一会话中应当执行的测试集合。测试包把测试组织在一起执行,而不论测试是否在同一文件里。清单D显示我们的测试包其实就是清单C中的那两个测试。在执行这些测试的时候我们要用到下一节中介绍的方法定义。
运行哪个测试?
在我们的测试包里我们明确定义了要运行的测试。那就是说当我们编写更多测试的时候需要把它们加到测试包里来。显式定义要运行的测试就等于定义了它们运行的次序。
当然,你也可以用reflection自动地发现测试案例。这意味着你只需要针对每次测试执行编写一次测试包,它动态地确定哪些测试可用并且运行这些测试。但其缺点却是你无法排斥测试的运行,而且你无法控制测试被执行的顺序。不过,由于没有向测试包中加入测试案例,所以reflection确实能保证你在创建测试案例的过程中没有遗留任何一步。
清单E 显示如何把类的名字传递给测试包构造器来自动装载测试。
现在我们就拿这个测试包进行测试。
运行Junit测试
执行测试需要创建可执行类来调用Junit测试运行器。运行器(runner)负责执行测试包,运行所有的测试并输出测试结果。清单F显示如何把测试包集成到测试运行器中。
正如你所看到的那样,测试运行器并不关心测试包是否明确定义了要运行的测试案例或者测试包是否采用了reflection来确定测试的名称。
如果一切OK,Junit就象清单G那样输出结果。但是要出了什么问题的话输出的结果就可能如清单H那样。
用Junit创建测试案例很简单,而且还有助于把软件开发过程中的错误最小化。要了解这方面的更多信息请参看JUnit.org。
acefr
2003-03-06
打赏
举报
回复
有测呀。
sunny32
2003-03-05
打赏
举报
回复
收藏
runyin
2003-03-04
打赏
举报
回复
只用过JTest,巨麻烦。
freebase
2003-03-04
打赏
举报
回复
Junit 只是单元测试框架在Java中的实现,如果你用的是Jbuilder6以上版本,那么Junit已经集成在JBuilder里面。
如果是其他的开发环境,可以到 www.junit.org 下载
还有其他的工具,但都是基于各种开发语言的
有机会访问我的网站 www.oodiscovery.com
l_walker
2003-03-02
打赏
举报
回复
学习中:)
learnerX
2003-03-01
打赏
举报
回复
UP
kreven
2003-02-28
打赏
举报
回复
学习ing:)
chesterwoo
2003-02-28
打赏
举报
回复
单元测试是品保的重要环节。
piaoyunbes
2003-02-19
打赏
举报
回复
没有时间~~~~
mem_fox
2003-02-18
打赏
举报
回复
用Jbuilder封装的TestCase,这样最少所有用test开头的方法都省了敲了
zzjjww
2003-02-17
打赏
举报
回复
一直坚持单元测试,但单元测试没有用工具。
现在正在改正中......
secrets001
2003-02-17
打赏
举报
回复
因地制宜了,项目大时,以后修改可能比较多,用junit很值,项目小,就不要浪费时间了。
小点哥
2003-02-17
打赏
举报
回复
xue xi
fangjun_cn
2003-02-17
打赏
举报
回复
学习中
Anubis
2003-02-15
打赏
举报
回复
偶进行版本控制.........
单体测试,结合测试,强化测试........
加载更多回复(21)
单元测试
的重要性
在当前的软件实施
过程
中
,
单元测试
已经成为了
开发
过程
中
的一个必不可少的部分,是程序员的必要职责之一。我们来看
单元测试
的重要性:1.
单元测试
能够督促
开发
人员更好的去理解程序需求,从而指导
开发
人员的
开发
过程
2.
单元测试
能够最大程度的减少bug的生存周期,从而减少bug的修复成本3.
单元测试
是最好的需求文档,它实时更新4.
单元测试
对后期的需求变更,bug修改具有更好的保障性5.
单元测试
对于理解与修改他人的代码具有很大的帮助测试常常是程序员十分厌倦的一个项目活动。测试能够为我们带来什么?了解这些非常的重要。
软件
开发
中
的测试阶段:
单元测试
、系统测试、集成测试
将已经集成好的软件系统,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其他系统元素结合在一起,在实际运行(使用)的环境下,对计算机系统
进行
一系列的组装测试和确认测试。在
单元测试
时,由于单元本身不是一个独立的程序,一个完整的可运行的软件系统并没有构成,所以需要设置一些辅助测试单元,辅助测试单元有两种,一种是驱动单元,另外一种是桩单元。描述系统需要测试的特性,测试的方法,测试环境的规划,测试工具的设计和选择,测试用例的设计方法,测试代码的设计方案。单元也具有一些基本的属性。
移动端
单元测试
一、什么是
单元测试
? 基本概念 **
单元测试
其实就是对模块、类、函数实现的功能执行检测,看看是否满足预期,是否达到功能要求,它是一次检查检验的
过程
。**如果某个模块或者函数满足预期,则表示测试通过,否则表示失败,比如工厂在组装一台电视机之前,会对每个元件都
进行
测试看是否合格,这就是
单元测试
,是不是很好理解。 为什么编写
单元测试
单元测试
是软件工程
中
降低
开发
成本,提高软件质量常用方式之一,
单元测试
是一项由
开发
人员或者测试人员来对程序模块的正确性
进行
检验测试的
工作
,用于检查被测试代码的功能是否正确,养成
单元测试
iOS
单元测试
一、什么是
单元测试
在计算机编程
中
,
单元测试
(英语:Unit Testing)又称为模块测试, 是针对程序模块(软件设计的最小单位)来
进行
正确性检验的测试
工作
。程序单元是应用的最小可测试部件。在
过程
化编程
中
,一个单元就是单个程序、函数、
过程
等;对于面向对象编程,最小单元就是方法,包括基类(超类)、抽象类、或者派生类(子类)
中
的方法。 通常来说,程序员每修改一次程序就会
进行
最少一次
单元测试
,在编...
springboot idea自动生成
单元测试
用例最佳方案(自己手写插件)
对于我们
开发
人员来说,
单元测试
一定不会陌生,但在各种原因下会被忽视,尤其是在我接触到的项目
中
,提测阶段发现各种各样的问题,我觉得有必要聊一下
单元测试
。为了写而写的
单元测试
没什么价值,但一个好的
单元测试
带来的收益是非常客观的。问题是怎么去写好
单元测试
?怎么去驱动写好
单元测试
?一 我们的现状现状一:多个项目完全没有
单元测试
。现状二:
开发
人员没有写
单元测试
的习惯,或者由于赶业务记录而没有时间去写。现状三:
单元测试
写成了集成测试,比如容器、数据库,导致
单元测试
运行时间长,失去了意义。现状四:太依赖集成测试。
Java EE
67,515
社区成员
225,878
社区内容
发帖
与我相关
我的任务
Java EE
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
复制链接
扫一扫
分享
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章