篇一 :Junit单元测试实验报告

实验二Junit单元测试实验报告

实验内容:利用Junit对实验程序Point2d.java进行单元测试

实验目的:掌握单元测试的方法,掌握在Eclipse里进行Junit测试的技术。

实验步骤和结果:

1、修改之前的Calculator的测试结果:

(1)自动生成的CalculatorTest类 代码:

package andycpp;

publicclass Calculator {

    privatestaticintresult; // 静态变量,用于存储运行结果

    publicvoid add(int n) {

        result = result + n;

    }

    publicvoid substract(int n) {

        result = result - 1;  //Bug: 正确的应该是 result =result-n

…… …… 余下全文

篇二 :junit单元测试教程教程

测试的概念

长期以来,我所接触的软件开发人员很少有人能在开发的过程中进行测试工作。大部分的项目都是在最终验收的时候编写测试文档。有些项目甚至没有测试文档。现在情况有了改变。我们一直提倡UML、RUP、软件工程、CMM,目的只有一个,提高软件编写的质量。举一个极端的例子:如果你是一个超级程序设计师,一个传奇般的人物。(你可以一边喝咖啡,一边听着音乐,同时编写这操作系统中关于进程调度的模块,而且两天时间内就完成了!)我真得承认,有这样的人。(那个编写UNIX中的vi编辑器的家伙就是这种人。)然而非常遗憾的是这些神仙们并没有留下如何修成正果的README。所以我们这些凡人--在同一时间只能将注意力集中到若干点(据科学统计,我并不太相信,一般的人只能同时考虑最多7个左右的问题,高手可以达到12个左右),而不能既纵览全局又了解细节--只能期望于其他的方式来保证我们所编写的软件质量。

为了说明我们这些凡人是如何的笨。有一个聪明人提出了软件熵(software entropy)的概念:一个程序从设计很好的状态开始,随着新的功能不断地加入,程序逐渐地失去了原有的结构,最终变成了一团乱麻。你可能会争辩,在这个例子中,设计很好的状态实际上并不好,如果好的话,就不会发生你所说的情况。是的,看来你变聪明了,可惜你还应该注意到两个问题:

…… …… 余下全文

篇三 :junit单元测试小结

单元测试利器 JUnit 4

1:引言

毋庸置疑,程序员要对自己编写的代码负责,您不仅要保证它能通过编译,正常地运行,而且要满足需求和设计预期的效果。单元测试正是验证代码行 为是否满足预期的有效手段之一。但不可否认,做测试是件很枯燥无趣的事情,而一遍又一遍的测试则更是让人生畏的工作。幸运的是,单元测试工具 JUnit 使这一切变得简单艺术起来。

2:junit的几个重要特性

2.1 : Fixture

何谓 Fixture ?它是指在执行一个或者多个测试方法时需要的一系列公共资源或者数据,例如测试环境,测试数据等等。在编写单元测试的过程中,您会发现在大部分的测试方法 在进行真正的测试之前都需要做大量的铺垫——为设计准备 Fixture 而忙碌。这些铺垫过程占据的代码往往比真正测试的代码多得多,而且这个比率随着测试的复杂程度的增加而递增。当多个测试方法都需要做同样的铺垫时,重复代 码的“坏味道”便在测试代码中弥漫开来。这股“坏味道”会弄脏您的代码,还会因为疏忽造成错误,应该使用一些手段来根除它。

JUnit 专门提供了设置公共 Fixture 的方法,同一测试类中的所有测试方法都可以共用它来初始化 Fixture 和注销 Fixture。和编写 JUnit 测试方法一样,公共 Fixture 的设置也很简单,您只需要:

…… …… 余下全文

篇四 :如何使用junit4写单元测试用例

如何使用junit4写单元测试用例

20##年8月21日posted by 大岩不灿 in 编程语言

JUnit4是JUnit框架有史以来的最大改进,其主要目标便是利用Java5的Annotation特性简化测试用例的编写。

先 简单解释一下什么是Annotation,这个单词一般是翻译成元数据。元数据是什么?元数据就是描述数据的数据。也就是说,这个东西在Java里面可以 用来和public、static等关键字一样来修饰类名、方法名、变量名。修饰的作用描述这个数据是做什么用的,差不多和public描述这个数据是公 有的一样。想具体了解可以看Core    Java2。废话不多说了,直接进入正题。

我们先看一下在JUnit 3中我们是怎样写一个单元测试的。比如下面一个类:
public class AddOperation {
      public int add(int x,int y){
          return x+y;
      }
}

…… …… 余下全文

篇五 :单元测试(Junit4教程)

JUnit4概述

JUnit4是JUnit框架有史以来的最大改进,其主要目标便是利用Java5的Annotation特性简化测试用例的编写。

先简单解释一下什么是Annotation,这个单词一般是翻译成元数据。元数据是什么?元数据就是描述数据的数据。也就是说,这个东西在Java里面可以用来和public、static等关键字一样来修饰类名、方法名、变量名。修饰的作用描述这个数据是做什么用的,差不多和public描述这个数据是公有的一样。想具体了解可以看Core    Java2。废话不多说了,直接进入正题。

我们先看一下在JUnit 3中我们是怎样写一个单元测试的。比如下面一个类:
public class AddOperation {
      public int add(int x,int y){
          return x+y;
      }
}

我们要测试add这个方法,我们写单元测试得这么写:
import junit.framework.TestCase;
import static org.junit.Assert.*;
public class AddOperationTest extends TestCase{

      public void setUp() throws Exception {
      }

      public void tearDown() throws Exception {
      }

      public void testAdd() {
          System.out.println(\"add\");
          int x = 0;
          int y = 0;
          AddOperation instance = new AddOperation();
          int expResult = 0;
          int result = instance.add(x, y);
          assertEquals(expResult, result);
      }
}

可以看到上面的类使用了JDK5中的静态导入,这个相对来说就很简单,只要在import关键字后面加上static关键字,就可以把后面的类的static的变量和方法导入到这个类中,调用的时候和调用自己的方法没有任何区别。


我们可以看到上面那个单元测试有一些比较霸道的地方,表现在:
1.单元测试类必须继承自TestCase。
2.要测试的方法必须以test开头。

如果上面那个单元测试在JUnit 4中写就不会这么复杂。代码如下:
import junit.framework.TestCase;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.*;

/**
*
* @author bean
*/
public class AddOperationTest extends TestCase{
   
      public AddOperationTest() {
      }

      @Before
      public void setUp() throws Exception {
      }

      @After
      public void tearDown() throws Exception {
      }

      @Test
      public void add() {
          System.out.println(\"add\");
          int x = 0;
          int y = 0;
          AddOperation instance = new AddOperation();
          int expResult = 0;
          int result = instance.add(x, y);
          assertEquals(expResult, result);
      }
   
}
我们可以看到,采用Annotation的JUnit已经不会霸道的要求你必须继承自TestCase了,而且测试方法也不必以test开头了,只要以@Test元数据来描述即可。
从上面的例子可以看到在JUnit 4中还引入了一些其他的元数据,下面一一介绍:
@Before:
使用了该元数据的方法在每个测试方法执行之前都要执行一次。

@After:
使用了该元数据的方法在每个测试方法执行之后要执行一次。

注意:@Before和@After标示的方法只能各有一个。这个相当于取代了JUnit以前版本中的setUp和tearDown方法,当然你还可以继续叫这个名字,不过JUnit不会霸道的要求你这么做了。

@Test(expected=*.class)
在JUnit4.0之前,对错误的测试,我们只能通过fail来产生一个错误,并在try块里面assertTrue(true)来测试。现在,通过@Test元数据中的expected属性。expected属性的值是一个异常的类型

@Test(timeout=xxx):
该元数据传入了一个时间(毫秒)给测试方法,
如果测试方法在指定的时间之内没有运行完,则测试也失败。

@ignore:
该元数据标记的测试方法在测试中会被忽略。当测试的方法还没有实现,或者测试的方法已经过时,或者在某种条件下才能测试该方法(比如需要一个数据库联接,而在本地测试的时候,数据库并没有连接),那么使用该标签来标示这个方法。同时,你可以为该标签传递一个String的参数,来表明为什么会忽略这个测试方法。比如:@lgnore(“该方法还没有实现”),在执行的时候,仅会报告该方法没有实现,而不会运行测试方法。


…… …… 余下全文

篇六 :Junit单元测试

JUnit java单元测试

首先须导入JUnit包:所在项目右击->Build Path->Add Libraries ->选择JUnit->选择一个版本->Finish

一.手动生成

1.测试方法,必须符合下列条件

* 方法必须声明成:public,void * JUnit3方法名必须以test开头,JUnit4则不需要 * 方法无参数

如:JUnit3:Public void testAdd(){}

JUnit4:@Test (org.junit.Test)

Public void AddTest(){}

2. JUit3 与 JUit4的区别

源码和测试代码分开放在不同的Source Folder,测试代码所在的包名最好和源码中的包名一一对应。JUnit3测试方法中的类必须继承TestCase(junit.framwork.TestCase);而JUnit4类则不需要继承任何类,但在方法前须加上注解@Test(org.junit.Test)此测试方法,标注该程序是以JUnit的方式来运行的。

JUit3:在方法前加上TestCase类的方法setUp(),在执行每一次测试方法之前都会被调用,可把在测试方法中都需要的程序放在这里;最后加上

…… …… 余下全文

篇七 :Junit4单元测试

1.   单元测试规范

单元测试使用Junit4进行测试,Eclipse内置了Junit4的支持。

1)        测试类命名

在项目的DAO与service层的实现类都必须编写测试用例,action由于struts2.0支持测试,所以也应该测试:

1.         测试用例命名规则为: 类名 + Test。(junit4支持非这样的命名方式,但是为了统一管理,还是采用这样的方式命名)

2.         建立一个和src平行的test包,所有测试用例都放在相应的包内,便于统一管理,合成测试套件。

3.         同一个包的测试用例,合成一个测试套件。

4.         整个工程的测试套件,合成一个统一的测试套件。

…… …… 余下全文

篇八 :实验一 使用Junit进行单元测试

实 验 报 告

实验名称 使用Junit进行单元测试 第 1 次实验 实验日期 2011- - 指导教师 班级 学号 姓名 成绩

一.目的和要求

1、了解测试用例及单元测试的基本概念;

2、掌握Eclipse中Junit的使用方法;

3、掌握Junit中测试用例的编写方法;

4、掌握Junit中测试套件的编写方法。

二.实验内容

参考案例《Junit测试》,完成如下内容

1、创建用于测试的程序;

2、编写测试用例;

3、创建测试套件

三.实验步骤

四.实验小结

…… …… 余下全文