`
djsl6071
  • 浏览: 593467 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

Eclipse中使用Junit插件进行单元测试

阅读更多
转自:http://hi.baidu.com/nboy/blog/item/3b61b3de71dc0b5cccbf1aa8.html

测试是软件开发的重要环节之一。按照软件开发的过程测试可分为:单元测试、集成测试、系统测试、域测试等。我们这里将讨论面向程序员的单元测试。

一、什么是单元测试

单元测试指的是使用编写好的测试代码来检验需要被测试的代码。我们通常给要测试的方法传入一些参数值,然后检测方法的返回值跟预期是否一致。一般情况下我们会传入一些容易引发错误的数据,例如给计算除法的方法传入除数0,并且测试的参数也会传入许多组,这样才能保证测试效果。

二、为什么要使用单元测试

注:如果你时间不多请直接看后面的粗体

每当别人提起“单元测试”都会让william的内心难受上好长一阵子,往往他的好心情也会一扫而光。这又是为什么呢?

5年前William的软件公司很顺利的拿到美国ADC电讯公司 (ADC Telecommunications )的一单软件开发的生意,总价值1500万美元,利润在32%上下。面对着几百万的收益,William兴奋地对自己的妻子说:“Catherine,不久我们的银行户头上就会多出几百万美元。做完这笔生意,你老爸再也不会抱怨他的女儿嫁给了一个贫困街区出生并且没受过高等教育的乡巴佬。还真想不到你老爸再见到我的时候会是什么样的表情……”。

作为同William生活了12年的Catherine很清楚的知道,William这个人实际的本事没多少,然而大话却说了不少。当初她正因为轻信了William的许诺才嫁给他,然而当年的承诺从来就没兑现过。虽说William这个人没什么本事,可是他却有着令别人羡慕的“狗屎运”。

高中毕业之后,他参了军,在越南战争中他所在的小队中了越南人的埋伏,却唯独William一个人活着回来。(William牢记美军士兵手册其中一条训令:永远不要和比你作战勇敢的战友躲在同一个散兵坑,因为他会给你们招来致命炮火打击。)William回来后向自己的上司编造了谎言,因而被提升为中尉,授予紫心勋章。

退役后有幸运结识底特律市长的千金——Catherine,并且让这位市长千金以身相许。William的岳父虽说从来就没看上过这位贫穷、没教养还时常夸夸其谈的女婿,可最终还是出资给William创办公司。William的运气不得不让人羡慕,可是这回软件开发他还会这么幸运么?

翌日,William一大早就来到公司,他第一件事情就是要和项目经理谈话。

“嘿!John。我们的项目要立即投入人力着手开发,别让那些程序员慢吞吞的。”William认真的说。

“先生,我们的项目还不能立即开发,因为我们还没有做项目需求。”项目经理John提醒着。

William不耐烦的说:“John,先别管需求那东西,我要最快看到产品。还有别搞那些耽误时间的单元测试,我希望你们以最快速拿出产品。”

John很无奈的接受了William的指示。

William真不愧是一个没大脑的人,为了能缩短开发时间,节省开发成本,从而达到提高利润率的目的,不惜进行需求分析、单元测试。最终的结果完全符合预料,项目失败了,William失去了400万美元的项目抵押金和300万美元的开发成本。

从William的例子中看到,缺少单元测试的项目很难达保证程序质量。我们编写代码时,一定会反复调试保证它能够编译通过。如果是编译没有通过的代码,没有任何人会愿意交付给自己的老板。但代码通过编译,只是说明了它的语法正确;我们却无法保证它的语义也一定正确,没有任何人可以轻易承诺这段代码的行为一定是正确的。幸运的是单元测试会为我们的承诺做保证。编写单元测试就是用来验证这段代码的行为是否与我们期望的一致。有了单元测试,我们可以自信的交付自己的代码,而没有任何的后顾之忧。

三、单元测试的优点

1、单元测试是一种验证行为

当针对一个Java类的测试用例写好之后,日后再向这个Java类添加新的方法并不影响存在的测试用例,由于测试用例是对以前的方法测试,因此不会映像到测试用例,我们只需向测试用例加入对新方法的测试即可。

2、从旁观者的角度编写测试用例

程序设计者讲UML类图画好之后,程序就有了类结构,这时对这个类中的方法编写测试用例,然后程序员开始讲类的具体内容实现。写好之后让测试用例测试。编写的顺序是先写测试用例再写程序具体代码,单元测试可以保证测试用例绝对客观、公正。因为他是在具体程序之前编写的。

3、代码可以反复被测试用例测试

四、你的第一个测试用例

创建一个Java类Calculation,完成加减乘除四则运算。

在新创建的类“Calculation”上右键——New——Other,弹出New对话框,选择JUnit Test Case,如下图:

Next,点击“Click here”导入JUnit包,如下图:

点“OK”后,警告解除,点“Next”

勾选刚才创建的加、减、乘、除方法,然后点“Finished”。

可以看到JUnit在当前包下创建了一个名叫“CalculationTest”的测试类:

下面可以写测试方法了:

右键Run As——JUnit Test,没有任何错误和失败,方法add通过单元测试。

 

可以修改一下代码,让assertEquals方法的两个参数不相等,再执行单元测试,就会看下面的错误提示:

只有打有“@Test”标识的测试方法才在单元测试时执行。JUnit窗口可以通过Window——Show View里选择,如图示:

五、JUnit 4语法结构

最新JUnit 4版本语法和从前相比语法异常简单,初学者10分钟就能全部掌握。

1、任意给Junit测试用例起类名,但需要符合正常的Java类命名规范。

2、测试用例类不用继承超类以及实现接口

public class CalculationTest{}

3、如果希望在执行测试之前运行某些代码,例如连接数据库、创建工厂类对象和初始化变量等等,我们可以将这样的代码写到一个方法之中,方法名字自己任意定义。但是需要在方法之前添加元数据“@Before”

@Before public void setUp() throws Exception { calc = new Calculation(); // 在测试开始前首先实例化一个Calculation对象 }

上面的例子看到,在执行测试之前对calc引用进行实例化。这样的代码应该被放在测试之前执行,否则在测试过程中calc没有被初始化,它的值只能是null。

4、如果那些代码需要在测试执行之后运行,例如关闭数据库连接、关闭线程池以及关闭数据库连接池等等,我们还是将他们写道一个方法中,在方法前加入“@After”。

@After public void setDown() throws Exception { // 这里写入代码 }

5、定义测试方法。 1) 方法名任意起 2) 方法前面加上“@Test” 3) 方法中可以定义测试的代码

6、测试上传异常

@Test(expected= IllegalArgumentException.Class) 方法前的这句元数据意思是期待抛出IllegalArgumentException类型的异常

7、测试时间

测试时间指的是当超过指定的时间,测试仍然没有结束,则判定测试失败。 @Test(timeout=500) public void testGetConnection() {         //写入测试代码 }

上面的代码意味着当500毫秒之后,测试没有结束测试就失败。

分享到:
评论

相关推荐

    在Eclipse中使用JUnit4进行单元测试

    在Eclipse中使用JUnit4进行单元测试是一种常见的Java开发实践,它可以帮助开发者确保代码的正确性和稳定性。单元测试是软件开发中的重要环节,通过编写针对代码各个独立模块的测试用例,可以验证代码功能是否按预期...

    Eclipse中使用Junit插件测试

    在Eclipse中设置Junit插件测试的步骤如下: 1. 创建Java工程:首先,我们需要在Eclipse中创建一个新的Java工程,这将是我们的测试项目的基础。 2. 编写待测试的代码:在工程中添加一个名为`example.Hello`的类,...

    在eclipse中使用junit4教程

    在 Eclipse 中使用 jUnit4,需要安装 jUnit4 插件,安装完成后可以在 Eclipse 项目中使用 jUnit4 进行单元测试。 jUnit4 的主要特点是使用 Annotation 来描述测试用例,使得测试用例的编写更加简洁和灵活。在 jUnit...

    使用eclipse与Junit4进行单元测试的简单例子

    本教程将详细介绍如何在Eclipse中使用JUnit4进行单元测试。 首先,你需要了解JUnit4的基本概念。JUnit是一个开源的Java测试框架,主要用于编写和运行针对Java代码的单元测试。在JUnit4中,测试用例以方法的形式存在...

    Eclipse安装插件——junit

    在Eclipse中使用Junit,你需要创建一个新的JUnit测试类。这可以通过右键点击项目中的源代码文件夹,选择“New” -> “JUnit Test Case”来实现。然后根据提示选择要测试的类和方法,Eclipse会自动生成一个基本的测试...

    eclipse下利用ant、junit进行自动化测试例子源码

    本示例主要展示了如何在Eclipse集成开发环境中利用ANT构建工具和JUnit单元测试框架进行自动化测试。以下是关于这些知识点的详细说明: 1. **Eclipse IDE**:Eclipse是一款流行的开源Java开发环境,支持多种语言的...

    在java中使用 junit单元测试

    在Eclipse中,我们可以使用JUnit插件来进行单元测试。首先,我们需要创建一个测试类,然后选择JUnit Test Case,填写测试类和方法,最后点击Run as JUnit Test。Eclipse就会自动地运行我们的测试用例,并显示测试...

    Eclipse中使用JUnit

    总之,Eclipse中使用JUnit进行单元测试是一种高效、便捷的实践,它能够显著提升软件开发的效率和质量,同时降低后期维护的成本。通过深入理解和熟练掌握这一技能,开发者能够在项目中发挥更大的作用,推动团队向更高...

    在Eclipse中使用Junit

    在Eclipse中使用JUnit是Java开发中的一个关键技能,它能帮助我们进行单元测试,确保代码的质量和稳定性。JUnit是一个流行的开源测试框架,专为Java编程语言设计,它简化了编写和运行测试用例的过程。下面我们将详细...

    junit单元测试实验

    开发者可以使用Eclipse的JUnit插件来运行单元测试用例,并查看测试结果。 知识点5:测试驱动开发 测试驱动开发是一种软件开发方法,它强调在编写代码之前先编写单元测试用例。这种方法可以确保代码的质量和可靠性...

    eclispe3.6自动生成测试类(Junit)插件

    标题 "eclispe3.6自动生成测试类(Junit)插件" 指的是一个Eclipse或MyEclipse的扩展,它允许用户方便地为项目中的源代码自动生成JUnit测试类。JUnit是一个广泛使用的Java编程语言的单元测试框架,它简化了编写和执行...

    Junit插件(Eclipse)

    在Eclipse这样的集成开发环境中,Junit插件的集成使得开发者能够更方便地进行单元测试。本篇文章将深入探讨“Junit插件(Eclipse)”,以及与其相关的“cobertura”、“eclmma”和“moreunit”工具。 首先,Junit...

    Junit插件eclipse插件

    在Eclipse中集成JUnit插件,可以方便地在开发环境中进行单元测试。 Cobertura是一款代码覆盖率工具,它可以分析测试运行后哪些代码被执行了,哪些还没有被执行。这对于确保测试覆盖的全面性非常重要,因为它可以...

    单元测试工具Junit的简单使用

    通过本文的学习,我们不仅了解了 JUnit 的基本概念和作用,还掌握了如何在 Eclipse 中使用 JUnit 进行简单的单元测试。掌握单元测试对于提高软件质量至关重要,而 JUnit 作为 Java 开发者常用的单元测试框架,其强大...

    junit4 单元测试源码

    总的来说,这个压缩包提供了学习JUnit4和进行单元测试的实战案例,对于理解如何在Eclipse中使用JUnit进行代码验证和调试是非常有价值的。通过分析和运行这些源码,学习者可以掌握单元测试的基本概念,了解如何编写...

    eclipse插件 - 单元测试代码覆盖统计

    3. **支持多种测试框架**:Eclipse插件通常兼容多种单元测试框架,如JUnit、TestNG等,这样无论您使用哪种框架编写单元测试,都能得到准确的覆盖率数据。 4. **配置选项**:用户可以根据项目需求调整代码覆盖率的...

Global site tag (gtag.js) - Google Analytics