文档库 最新最全的文档下载
当前位置:文档库 › Junit 一次运行多个测试类和进行多次重复测试

Junit 一次运行多个测试类和进行多次重复测试

Junit 一次运行多个测试类和进行多次重复测试
Junit 一次运行多个测试类和进行多次重复测试

JUnit3 一次运行多个测试类和进行多次重复测试:使用测试套件和RepeatedTest

测试套件

如果测试类写到很多,每次要进行测试,难道要重新点击每一个测试类来运行?如果有200个测试类要测试呢?

为了解决这个问题,引入了测试套件(TestSuite)。

通过将多个测试放入套件中,一并执行多个测试。

实例:一次运行多个测试类

比如,有两个测试类,叫CalculatorTest和CalculatorTest2。

在测试类所在的包中新建一个类,叫做TestAll,如下:

package com.mengdd.junit;

import junit.framework.Test;

import junit.framework.TestCase;

import junit.framework.TestSuite;

public class TestAll extends TestCase

{

public static Test suite()

{

// 创建一个测试套件

TestSuite suite = new TestSuite();

// 增加测试类的class对象

suite.addTestSuite(CalculatorTest.class);

suite.addTestSuite(CalculatorTest2.class);

return suite;

}

}

运行时,右键这个类,Run As ->JUnit Test:

就相当于运行了CalculatorTest和CalculatorTest2。

实例:进行方法的重复测试

如果要对某个方法进行多次测试,可以使用RepeatedTest。

使用时注意,测试类需要一个带参数(String)的构造函数,将String参数传给基类TestCase,调用基类的带参数的构造函数。

于是修改之前的代码如下:

被测试类不变:

package com.mengdd.junit;

public class Calculator

{

public int add(int a, int b)

{

return a + b;

}

public int subtract(int a, int b)

{

return a - b;

}

public int multiply(int a, int b)

{

return a * b;

}

public int divide(int a, int b) throws Exception

{

if(0 == b)

{

throw new Exception("除数不能为0");

}

return a / b;

}

}

测试类:

package com.mengdd.junit;

import junit.framework.Assert;

import junit.framework.TestCase;

public class CalculatorTest extends TestCase

{

private Calculator calculator = null;

public CalculatorTest()

{

super();

}

public CalculatorTest(String name)

{

super(name);

}

@Override

public void setUp() throws Exception {

System.out.println("set up");

// 生成成员变量的实例

calculator = new Calculator();

System.out.println(calculator);

}

@Override

public void tearDown() throws Exception

System.out.println("tear down");

}

public void testAdd()

{

int result = calculator.add(1, 2);

// 判断方法的返回结果

Assert.assertEquals(3, result);// 第一个参数是期望值,第二个参数是要验证的值

}

public void testSubtract()

{

int result = calculator.subtract(1, 2);

// 判断方法的返回结果

Assert.assertEquals(-1, result);// 第一个参数是期望值,第二个参数是要验证的值

}

public void testMultiply()

{

int result = calculator.multiply(2, 3);

// 判断方法的返回结果

Assert.assertEquals(6, result);// 第一个参数是期望值,第二个参数是要验证的值

}

public void testDivide()

{

int result = 0;

try

{

result = calculator.divide(12, 3);

}

catch (Exception e)

{

e.printStackTrace();

// 如果抛出异常,证明测试失败,没有通过,没通过的测试计数在Failures 中

Assert.fail();

// 如果不加这一行,如果程序进入到catch,无法判断其失败}

// 判断方法的返回结果

Assert.assertEquals(4, result);// 第一个参数是期望值,第二个参数是要验证的值

}

public void testDivideByZero()

{

Throwable tx = null;

int result = 0;

try

{

result = calculator.divide(12, 0);

Assert.fail("没有抛出异常,测试失败");// 如果执行到这行代码,则证明没有抛出异常,说明我们的验证失败

}

catch (Exception e)

{

e.printStackTrace();

tx = e;

}

Assert.assertEquals(Exception.class, tx.getClass());// 抛出的异常类型是否和期望一致

Assert.assertEquals("除数不能为0", tx.getMessage());// 抛出的异常信息是否和期望一致

//如果上面两个都通过,则测试通过}

}

测试套件类:

package com.mengdd.junit;

import junit.extensions.RepeatedTest;

import junit.framework.Test;

import junit.framework.TestCase;

import junit.framework.TestSuite;

public class TestAll extends TestCase

{

public static Test suite()

{

// 创建一个测试套件

TestSuite suite = new TestSuite();

// 增加测试类的class对象

suite.addTestSuite(CalculatorTest.class);

suite.addTestSuite(CalculatorTest2.class);

// 测试某个方法多次,注意测试类需要提供带参数的构造方法

suite.addTest(new RepeatedTest(new CalculatorTest("testSubtract"), 20));

return suite;

}

}

运行结果:

用Junit测试计算器单元对象类

实验报告五 课程名称:软件测试 学生姓名:董月 班级:浦计1104班 学号:P1401110402 指导教师:韩志刚 实验日期:2014-5-8 南京工业大学电子与信息学院

实验五 一、实验内容 用java语言编写一个计算器类,求实现加、减、乘、除、求平方根、求绝对值、求倒数1/x,方法,并用junit进行对象类的单元测试。参阅帮助文档。(说明,设计求除法、求倒数的方法,可在方法中不检测x是否为0,测试用例用y/0去测试、求平方根可不检测x>0,用负数测试) 二、实验步骤 首先新建一个项目叫JUnit_Test,我们编写一个Calculator类,这是一个能够简单实现加减乘除、平方、开方的计算器类,然后对这些功能进行单元测试。 建立一个hzg包: 建立一个Calculator类:

把代码输进类中: package hzg; public class Calculator { private static int result; // 静态变量,用于存储运行结果 public void add(int n) { result = result + n; } public void substract(int n) { result = result - 1; //Bug: 正确的应该是result =result-n } public void multiply(int n) { result=result*n; } public void divide(int n) { result = result / n; } public void square(int n) { result = n * n; } public void squareRoot(int n) { result= (int) Math.sqrt(n); } public void clear() { // 将结果清零 result = 0; } public void reciprocal(int n) { result=1/n; } public void absolute(int n) { result=Math.abs(n); } public int getResult() { return result; } }

JUnit入门及应用

JUnit入门及应用 1、相关概念 ?JUnit:是一个开发源代码的Java测试框架,用于编写和运行可重复的测试。它是用于单 元测试框架体系xUnit的一个实例(用于java语言)。主要用于白盒测试,回归测试。 ?白盒测试:把测试对象看作一个打开的盒子,程序内部的逻辑结构和其他信息对测试人 员是公开的。 ?回归测试:软件或环境的修复或更正后的再测试,自动测试工具对这类测试尤其有用。 ?单元测试:最小粒度的测试,以测试某个功能或代码块。一般由程序员来做,因为它需 要知道内部程序设计和编码的细节。 2、单元测试 2.1、单元测试的好处 ?提高开发速度,测试是以自动化方式执行的,提升了测试代码的执行效率。 ?提高软件代码质量,它使用小版本发布至集成,便于实现人员除错。同时引入重构概念, 让代码更干净和富有弹性。 ?提升系统的可信赖度,它是回归测试的一种。支持修复或更正后的“再测试”,可确保代码的正确性。 2.2、单元测试的针对对象 ?面向过程的软件开发针对过程。 ?面向对象的软件开发针对对象。 ?可以做类测试,功能测试,接口测试(最常用于测试类中的方法)。 2.3、单元测试工具和框架 目前的最流行的单元测试工具是xUnit系列框架,常用的根据语言不同分为JUnit(java),CppUnit(C++),DUnit (Delphi ),NUnit(.net),PhpUnit(Php )等等。 单元测试框架的第一个和最杰出的应用就是由Erich Gamma (《设计模式》的作者)和Kent Beck(XP(Extreme Programming)的创始人)提供的开放源代码的JUnit。 3、Junit入门简介 3.1、JUnit的好处和JUnit测试编写原则 使用JUnit的好处: ?可以使测试代码与产品代码分开。 ?针对某一个类的测试代码通过较少的改动便可以应用于另一个类的测试。

Junit单元测试技术

JUnit单元测试 (一)、JUnit介绍: 测试对于保证软件开发质量有着非常重要的作用,单元测试更是必不可少,JUnit是一个非常强大的单元测试包,可以对一个/多个类的单个/多个方法测试,还可以将不同的TestCase组合成TestSuit,使测试任务自动化。Eclipse同样集成了JUnit,可以非常方便地编写TestCase。 (二)、为什么使用JUnit? 不知道大家以前在对自己的项目是怎么进行测试的。反正我的测试方法是在一个类中都写一个main函数,然后根据类中方法的参数传入相应的值。这样做很麻烦,最大的缺点就是如果项目功能模块很多的话,那就完了。:) (三)、eclipse中建立一个完整的单元测试 Junit3 package cn.itcast.example; public class Demo1 { private int n; public Demo1(int n) { this.n = n; } // 返回绝对值: public int foo() { return n>0 ? n : (-n); } } package cn.itcast.example; public class Demo2 { public int add(int x, int y) { return x + y; } public static int divide(int x, int y) { return x / y; } public static int multiple(int x, int y) { return x * y; } } 测试用例

public class Demo1Test extends TestCase { private Demo1 s1, s2; protected void setUp() throws Exception { s1 = new Demo1(10); s2 = new Demo1(-7); } protected void tearDown() throws Exception { } public void testFoo() { assertTrue(s1.foo()==10); assertTrue(s2.foo()==7); } } public class Demo2Test extends TestCase { Demo2 demo; protected void setUp() throws Exception { super.setUp(); demo = new Demo2(); System.out.println("go........."); } protected void tearDown() throws Exception { super.tearDown(); } public void testAdd() { assertEquals(7, demo.add(3, 4)); } public void testDivide() { assertEquals(4, demo.divide(8, 2)); } public void testMultiple() { assertEquals(20, demo.multiple(4, 5)); } } public class AllTests {

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

在Eclipse中使用JUnit4进行单元测试 首先新建一个项目叫JUnit_Test,我们编写一个Calculator类,这是一个能够简单实现加减乘除、平方、开方的计算器类,然后对这些功能进行单元测试。这个类并不是很完美,我们故意保留了一些Bug用于演示,这些Bug在注释中都有说明。该类代码如下:

第二步,将JUnit4单元测试包引入这个项目:在该项目上点右键,点“属性”,如图: 在弹出的属性窗口中,首先在左边选择“Java Build Path”,然后到右上选择“Libraries”标签,之后在最右边点击“Add Library…”按钮,如下图所示: 然后在新弹出的对话框中选择JUnit4并点击确定,如上图所示,JUnit4软件包就被包含进我们这个项目了。 第三步,生成JUnit测试框架:在Eclipse的Package Explorer中用右键点击该类弹出菜单,选择“New à JUnit Test Case”。如下图所示: 在弹出的对话框中,进行相应的选择,如下图所示:

点击“下一步”后,系统会自动列出你这个类中包含的方法,选择你要进行测试的方法。此例中,我们仅对“加、减、乘、除”四个方法进行测试。如下图所示: 之后系统会自动生成一个新类CalculatorTest,里面包含一些空的测试用例。你只需要将这些测试用例稍作修改即可使用。完整的CalculatorTest代码如下:

第四步,运行测试代码:按照上述代码修改完毕后,我们在CalculatorTest类上点右键,选择“Run As à JUnit Test”来运行我们的测试,如下图所示: 运行结果如下:

JUnit in java单元测试用例实战

JUnit in java单元测试用例实战 单元测试基础 当今软件测试十分盛行时,本人通过项目实践和个人亲身体会浅谈单元测试,本人一直坚持“用代码说话的原则”,同时也希望个人能给出宝贵意见,共同探讨、共同进步,为中国软件事业有更大的发展共同奋斗! 最早我们项目组开发的项目时,写代码都是从底层一直写到表现层到jsp,然后开发人员在web层调试页面,近乎98%都会报一大堆exception,然后再在代码中加断点一步一步查到底哪一层代码出现问题……,比较好点做法就是在各个类中加上main方法测试,但总体很不理想,给web层开发人员的调试和质量控制人员带来繁重的工作压力;使用单元测试后,针对每一个方法都做严格的把关,大大减少调试的时间;同时质量控制人员返回过来的bug 少了近60%,现在对于开发人员写测试用例非常熟练,并且本人根据实际情况对测试用例做了点小小改动(这部分主要在后面代码中详述),带来很好的效果! 单元测试到底给实际开发带来什么好处那? (1)首先对于开发人员来说大大减少调试工作的时间,同时也规范了对于代码安全管理(我们知道那些方法是可以调用的); (2)对于整个项目来说,有了完整的测试,保证项目最后交付测试有了可靠依据; (3)对于测试人员大大减少bug的反馈; (4)对于项目经理整个项目达到很好的可控; (5)最主要的完整的单元测试给后期维护人员带来很大的便捷! 单元测试好处可能还有很多,但本人只能理解和感悟这么多,希望观者补充! 单元测试配置: 将使用eclipse+myEclopse给大家介绍关于JUNIT的环境的简单配置;右键点击项目选择“属性”,在弹出窗口中到环境变量中添加junit.jar包,这样下一步我们就可以进行单元测试了;

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的变量和方法导入到这个类中,调用的时候和调用自己的方法没有任何区别。

Junit基本教程

Eclipse中配置junit 在要使用JUNIT的project名上,点击properties--java build path-libraries, 点击Add External JARs,把JUNIT包点上就行了. 并在需要测试的项目上新建junit test case 用法 1. 基本使用步骤,Junit的使用非常简单,它的基本使用步骤: - 创建,从junit.framework.TestCase派生unit test需要的test case - 书写测试方法,提供类似于如下函数签名的测试方法: public void testXXXXX(); - 编译,书写完test case后,编译所写的test case类 - 运行,启动junit test runner,来运行这个test case。 Junit提供了2个基本的test runner:字符界面和图形界面。启动命令分别如下: a 图形界面: 化每个测试方法的。setUp在每个测试方法调用前被调用,负责初始化测试方法所需要的测试环境;tearDown在每个测试方法被调用之后被调用,负责撤销测

试环境。它们与测试方法的关系可以描述如下: 测试开始 -> setUp -> testXXXX -> tearDown ->测试结束 - fail,期望出现的错误。产生原因:assert函数出错(如assertFalse(true));fail函数产生(如fail(……))。 - exception,不期望出现的错误,属于unit test程序运行时抛出的异常。它和普通代码运行过程中抛出的runtime异常属于一种类型。 对于assert、fail等函数请参见junit的javadoc。

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

Eclipse中使用Junit插件进行单元测试 测试是软件开发的重要环节之一。按照软件开发的过程测试可分为:单元测试、集成测试、系统测试、域测试等。我们这里将讨论面向程序员的单元测试。 一、什么是单元测试 单元测试指的是使用编写好的测试代码来检验需要被测试的代码。我们通常给要测试的方法传入一些参数值,然后检测方法的返回值跟预期是否一致。一般情况下我们会传入一些容易引发错误的数据,例如给计算除法的方法传入除数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提醒着。

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(),在执行每一次测试方法之前都会被调用,可把在测试方法中都需要的程序放在这里;最后加上

tearDown()方法,在执行每一次方法后都会被调用。 JUit4:与JUit3不同的是,在JUit4中是在方法前用注解 @BeforeClass:globeInit(),无论执行多少测试方法,它只执行一次,且运行在最前 @Before:把方法注解成Before,init()与JUit3中的setUp()方法作用一样@After:把方法注解成After,destroy()与JUit3中的tearDown ()方法作用一样 @AfterClass:无论执行多少测试方法,它只执行一次,且运行在最后 下面分别以JUit3和JUit4为例子来运行测试: 例1.JUit3 源代码: package com.sinyee.unit; public class ArrayUnit { /** *传入一个数组,返回该数组的最大值 *@param array *@return */ public int getMaxValue(int[] array) throws Exception { if (array==null) { throw new NullPointerException("空指针异常"); } if (array.length == 0) { throw new ArrayIndexOutOfBoundsException("数组不能为 空!"); } int temp = array[0]; for (int i = 1; i < array.length; i++) { if (temp < array[i]) { array[i] = temp; } } // 取出该数组的最大值 return temp;

junit心得体会

junit心得体会 篇一:我本人学习JUnit的心得体验 我本人学习JUnit的心得体验 其实促使我学习JUnit首先是因为它是一个标准。其实不用JUnit进行测试可 不可以呢?答案是可以的,而且我们还可以随心所欲地编写测试代码,到最后轻松完成测试。但是问题出现了,如果有人接下你的项目进行二次开发的时候,看你的测试代码将是一件苦差事。所以有必要制定一套标准实现测试的规范化。JUnit在这种环境之下诞生了。 其次,通过学习JUnit,我感受到了先写测试再编码的好处。因为在我们写 好测试的同时,我们也确认了类别所要进行的行为,即使我们一开始对该类别的职责还不明确,藉由先写下测试,我们对该类别的要求也可以确定下来,这是写测试的好处,而且在写好的同时,相当于也写好了对该类别的职责说明书。因此我们应该先将相关的测试写好,这可以帮助我们确定所要加上的功能是什么,然后我们的目标就是通过这些新的测试。事实上,我们的类别将会被设计为与其它物件耦合度低的类别,这也是先写测试所意外带来的好处。 其实JUnit简单使用并不复杂,首先要下载JUnit包并配置好,我用的idE

是netbeans里面已经集成JUnit了。 一般一个类别都会对应一个测试类。JUnit提供了一个代码框架给我们编写 我们自己的测试类: publicclassTestXXXextendsTestcase{ publicTestXXX(Stringname){ super(name); } publicvoidsetUp(){ try{ super.setUp(); /*yourinitializecodehere*/ }catch(Exceptionex){ ex.printStackTrace(); } } publicvoidteardown(){ try{ /*yourdestroycodehere*/ super.teardown(); }catch(Exceptionex){ ex.printStackTrace();

单元测试(JUnit)的应用

单元测试(JUnit)的应用 一.概要 单元测试不仅仅是保证代码在方法级别的正确性,它还能改进设计,易于对代码重构。凡是容易编写单元测试的代码,往往是优秀的设计和松耦合的组件,凡是难于编写单元测试的代码,往往是设计不佳和耦合度高的系统,因此,编写单元测试不仅仅是掌握单元测试柜架的用法,更重要的是在编写单元测试的过程中发现设计缺陷,改进系统结构,从而实现良好的可扩展性。 任何一个项目,单元测试应该在详细设计之后开始进行,首先根据详细设计文档进行单元测试用例的编写,编写完成后进行代码开发,代码完成后运行单元测试,如果通过,则该方法可以发布运行,如果不通过需要进行代码改造,再进行单元测试,直到单元测试运行通过为止。 每新增一个功能时的开发流程如图1所示: 编写测试用例 编写代码 完成 对代码做小的修改 运行测试通过失败 图1 本文首先按照上图所示流程进行一个简单功能的开发,同时使用JUnit 4 提供的

各种功能开展有效的单元测试,接着对JUnit技术进行了简单的介绍。 二.软件支持 Eclipse:最为流行的 IDE,它全面集成了 JUnit,并从版本 3.2 开始支持 JUnit 4。当然 JUnit 并不依赖于任何 IDE。您可以从https://www.wendangku.net/doc/e77088146.html,/上下载最新的 Eclipse 版本。 Ant:基于 Java 的开源构建工具,您可以在https://www.wendangku.net/doc/e77088146.html,/上得到最新的版本和丰富的文档。Eclipse 中已经集成了 Ant。 JUnit:它的官方网站是https://www.wendangku.net/doc/e77088146.html,/。您可以从上面获取关于 JUnit 的最新消息。如果您和本文一样在 Eclipse 中使用 JUnit,就不必再下载了。 三.JUnit的实际应用例子 3.1功能需求 将Java对象名称(每个单词的头字母大写)按照数据库命名的习惯进行格式化,格式化后的数据为小写字母,并且使用下划线分割命名单词,要求对输入数据进行非法验证。 3.2编写测试 首先新建一个 Java 工程—— TestJUnit。打开项目 TestJUnit的属性页 -> 选择“Java Build Path”子选项 -> 点选“Add Library…”按钮 -> 在弹出的“Add Library”对话框中选择 JUnit(图2),并在下一页中选择版本 4.1 后点击“Finish”按钮。

课程设计-基于Junit的单元测试

课程设计(论文)任务书 软件学院软件工程(软件测试)专业2012-班 一、课程设计(论文)题目基于Junit(/Nunit)的单元测试 二、课程设计(论文)工作自 2015年 6 月 15 日起至 2015年 6 月 19 日止。 三、课程设计(论文) 地点: 创新大楼软件实训中心机房406 四、课程设计(论文)内容要求: 1.本课程设计的目的 (1)使学生能掌握黑盒功能测试的基本思路和方法,学会使用单元测试工具Junit(/Nunit)进行单元功能测试; (2)培养学生分析、解决问题的能力; (3)提高学生的科技论文写作能力。 2.课程设计的任务及要求 1)基本要求: (1)选择待测试函数或类,分析测试需求,认真设计好测试用例; (2)重点运用Junit/Nunit进行单元测试的开发; (3)认真分析测试结果;分析测试用例对被测对象的覆盖程度。 2)创新要求: 在基本要求达到后,可以对更复杂一些的函数设计用例,进行单元测试。 3)课程设计论文编写要求 (1)要按照书稿的规格打印书写课程设计论文 (2)论文包括目录、设计思路、具体实现、运行调试与分析讨论、设计体会与小结、参考文献、附录等 (3)课程设计论文装订按学校的统一要求完成 4)答辩与评分标准: (1)出勤和学习态度:10分; (2)课设检查:20分; (3)回答问题:20分; (4)课设论文:50分; 5)参考文献: (1)参考单元测试的PPT

(2) 6)课程设计进度安排 内容天数地点 构思及收集资料1图书馆 设计与测试 2.5实验室 撰写论文 1.5图书馆、实验室 学生签名: 2015年6月19日 课程设计(论文)评审意见 (1)测试内容(10分):优()、良()、中()、一般()、差(); (2)设计分析(40分):优()、良()、中()、一般()、差(); (3)测试开发(30分):优()、良()、中()、一般()、差(); (4)结果分析(20分):优()、良()、中()、一般()、差(); 评阅人:职称:副教授 2015年6月22日

关于JUnit测试框架的使用

实验五JUnit测试框架的使用 一、实验目的 1、掌握Junit测试框架的使用 2、掌握测试用例的编写 二、基本知识 1、熟悉java编程语言和Eclipse集成开发环境 2、熟悉单元测试概念 3、熟悉测试设计技术 三、实验环境 ①windows操作系统+IE浏览器 ②Eclipse集成开发环境+Junit测试框架 四、实验内容 1、学习Junit框架的使用 可通过以下两个示例进行学习。 A、Junit使用方法示例1 1)把Junit引入当前项目库中 新建一个Java 工程—coolJUnit,打开项目coolJUnit的属性页->选择“Java Build Path”子选项->点选“Add Library…”按钮->在弹出的“Add Library”对话框中选择JUnit(图1),并在下一页中选择版本Junit 4 后点击“Finish”按钮。这样便把JUnit引入到当前项目库中了。

图1 为项目添加JUnit库 2)新建单元测试代码目录 单元测试代码是不会出现在最终软件产品中的,所以最好为单元测试代码与被测试代码创建单独的目录,并保证测试代码和被测试代码使用相同的包名。这样既保证了代码的分离,同时还保证了查找的方便。遵照这条原则,在项目coolJUnit根目录下添加一个新目录testsrc,并把它加入到项目源代码目录中。(见图2、3)。

图2 新建测试代码目录 图3 添加测试代码目录 3)在工程中添加类 添加类SampleCaculator,类中有两个方法,分别计算加减法。编译代码。 package https://www.wendangku.net/doc/e77088146.html,.gzhu; publicclass SampleCalculator { //计算两整数之和 publicint add(int augend, int addend){ return augend + addend; } //计算两整数之差 publicint subtration(int minuend, int subtrahend){ return minuend - subtrahend; } } 4)写单元测试代码 为类SampleCalculator添加测试用例。在资源管理器SampleCalculator.java文件处右击选new>选Junit Test Case(见图4),Source foler选择testsrc目录,点击next,选择要测试的方法,这里把add和subtration方法都选上,最后点finish完成。

软件测试实验-JUnit单元测试

第三章JUnit单元测试 实验1 开始使用JUnit 【实验目得】 1、学习使用JUnit4、X进行单元测试; 2、掌握JUnit4、X编写测试代码得方法; 3、应用JUnit进行单元测试,掌握最佳实践编写测试代码。 【实验环境】 1、Windows环境,MyEclipse或Eclipse,JUnit4、x。 2、每个学生操作1台电脑。 【实验原理】 JUnit就是一个开源得Java编程语言得单元测试框架,最初由Erich Gamma 与Kent Beck 编写。Junit测试就是一种白盒测试工具。JUnit就是一套框架,继承TestCase类,就可以用Junit进行自动测试了。具有JUnit经验对于应用“测试驱动开发(TDD)”得程序开发模型就是非常重要得。 JUnit本质上就是一套框架,即开发者制定了一套条条框框,遵循这此条条框框要求编写测试代码,如继承某个类,实现某个接口,就可以用JUnit进行自动测试了。 由于JUnit相对独立于所编写得代码,可以测试代码得编写可以先于实现代码得编写,XP 中推崇得test first design得实现有了现成得手段:用JUnit写测试代码,写实现代码,运行测试,测试失败,修改实现代码,再运行测试,直到测试成功。以后对代码得修改与优化,运行测试成功,则修改成功。 Java 下得team 开发,采用cvs(版本控制) + ant(项目管理) + JUnit (集成测试) 得模式时,通过对ant得配置,可以很简单地实现测试自动化。 【实验内容】 根据下面得实验步骤完成实验。 1、JUnit包下载。 (1) 从http://下载Junit,打开该链接,会有一个下载链接,下载Junit4、X、zip,保存在用户机得文件系统中。 (2) 解包Junit-4、X,得到如图3-1得解包文件。

Junit测试报告

Junit单元测试 版本号:0.1 制定日期:2010-12 编制冯宝鹏日期2012-04-14 审核日期 批准日期

文档修订记录 修订日期修订内容修订人

目录 Junit单元测试 (4) 一实验目的 (4) 二实验环境 (4) 三实验内容 (4) 四实验步骤 (4) 五测试用例 (4) 六测试计划 (6) 七测试计划 (6) 八覆盖率测试报告 (9) 1.测试一元二次方程有两个实根的情况 (9) 2.测试二元一次方程有两个虚根的情况 (10) 3. 测试一元一次方程有一个根的情况 (11) 4测试不为方程的情况 (12) 九实验总结 (14)

Junit单元测试 一实验目的 1.掌握白盒测试方法,并按单元测试的要求设计测试用例。 2.能熟练应用junit测试工具进行单元测试。 3.进行代码覆盖检查。 二实验环境 主流PC机一套,windows操作系统eclipse开发平台。 三实验内容 1、用java语言编写一个求一元二次方程根的函数 2、设计白盒测试用例,达到分支覆盖 3、使用弱健壮等价类分析方法设计测试用例。 4、根据以上设计的测试用例,编写junit测试代码,并进行测试。 5、利用EclEmma完成测试代码覆盖分析,并生成html格式代码覆盖测试报告。 四实验步骤 (1)根据白盒法设计测试用例,并撰写单元测试计划书。 (2)根据每个测试用例,编写基本Junit的单元测试脚本。 (3)生成html格式的代码覆盖测试报告。 五测试用例 采用条件覆盖法设计用例,使判断中的每个条件的可能取值至少满足一次。 分为四种情况: (1)一元二次方程有两个实根(简单起见,将方程有两个相同实根,归类为方程有两个实根)

软件测试实验3--Junit单元测试

南京理工大学泰州科技学院实验报告书 课程名称:《软件测试与质量保证》 实验题目:实验三 Junit单元测试 班级: 学号: 姓名: 指导教师:

一、实验目的 1.了解Junit测试框架用途及相关框架组成要素 2.掌握Junit3.8中断言的使用及Assert静态类的相关用法 3.掌握在Eclipse中如何结合JUnit3.8进行单元测试的过程 二、实验内容 1、使用java语言编写一个类,该类用于完成简单的数学四则运算;然后使用Junit单元测试方法对编写的类进行测试。 三、实验步骤及结果 1、 (1)实验程序 package https://www.wendangku.net/doc/e77088146.html,; import https://www.wendangku.net/doc/e77088146.html,.apache.bcel.internal.generic.NEW; import junit.framework.Assert; import junit.framework.TestCase;

public class MathTest extends TestCase{ public void testAdd() { Math math=new Math(); int result=math.add(1,2); Assert.assertEquals(3,result); } public void testMin(){ Math math=new Math(); int result=math.min(1,2); Assert.assertEquals(-1,result); } public void testMui(){ Math math=new Math(); int result=math.mui(1,2); Assert.assertEquals(2,result); } public void testDiv(){ Math math=new Math(); int result=0; try{ result=math.div(6,2);} catch(Exception e){ e.printStackTrace(); } Assert.assertEquals(3,result); } public void testDiv1(){ Throwable throwable=null; Math math=new Math(); try{ int result=math.div(6,0);} catch(Exception e){ throwable=e; } assertNotNull(throwable); assertEquals(Exception.class,throwable.getClass()); assertEquals("除数不能为零",throwable.getMessage()); } } (2)实验结果

用Junit测试计算器单元对象类

实验报告五课程名称:软件测试 学生姓名:董月 班级:浦计1104班 指导教师:韩志刚 实验日期:2014-5-8 南京工业大学电子与信息学院 实验五 一、实验内容 用java语言编写一个计算器类,求实现加、减、乘、除、求平方根、求绝对值、求倒数1/x,方法,并用junit进行对象类的单元测试。参阅帮助文档。(说明,设计求除法、求倒数的方法,可在方法中不检测x是否为0,测试用例用y/0去测试、求平方根可不检测x>0,用负数测试) 二、实验步骤 首先新建一个项目叫JUnit_Test,我们编写一个Calculator类,这是一个能够简单实现加减乘除、平方、开方的计算器类,然后对这些功能进行单元测试。建立一个hzg包: 建立一个Calculator类: 把代码输进类中: package hzg; public class Calculator { private static int result; // 静态变量,用于存储运行结果 public void add(int n) { result = result + n; } public void substract(int n) { result = result - 1; //Bug: 正确的应该是result =result-n } public void multiply(int n) { r esult=result*n; } public void divide(int n) { result = result / n;

} public void square(int n) { result = n * n; } public void squareRoot(int n) { result= (int) Math.sqrt(n); } public void clear() { // 将结果清零 result = 0; } public void reciprocal(int n) { result=1/n; } public void absolute(int n) { result=Math.abs(n); } public int getResult() { return result; } } 第二步,将JUnit4单元测试包引入这个项目:在该项目上点右键,点“属性”,在弹出的属性窗口中,首先在左边选择“Java Build Path”,然后到右上选择“Libraries”标签,之后在最右边点击“Add Library…”按钮,如下图所示: 然后在新弹出的对话框中选择JUnit4并点击确定,如上图所示,JUnit4软件包就被包含进我们这个项目了。 第三步,生成JUnit测试框架:在Eclipse的Package Explorer中用右键点击该类弹出菜单,在弹出的对话框中,进行相应的选择加、减、乘、除,之后系统会自动生成一个新类CalculatorTest,里面包含一些空的测试用例。只需要将这些测试用例稍作修改即可使用。完整的CalculatorTest 代码如下: package hzg; import static import import import import import public class CalculatorTest { private static Calculator calculator = new Calculator(); @BeforeClass public static void setUpBeforeClass() throws Exception { } @AfterClass public static void tearDownAfterClass() throws Exception { }

Junit学习总结

Junit学习 (一)TDD简介: 许多书上都讨论了自动测试,但是只有很少的著作注意到这么一个问题,那就是怎样把这些测试组织起来。随着测试的增加,放置和调用这些测试却变得更加麻烦。这将成为一个重要问题,以至于出现了TDD,极限编程(XP)使TDD得以普及。另外,你可以这样理解TDD:通过测试来开发。 TDD(Test-Driven Development:测试驱动开发)本质和优势 测试驱动开发不是一种测试技术,它是一种分析技术、设计技术,更是一种组织所有开发活动的技术。相对于传统的结构化开发过程方法,它具有以下优势: 1) TDD根据客户需求编写测试用例,对功能的过程和接口都进行了设计,而且这种从使用者角度对代码进行的设计通常更符合后期开发的需求。因为关注用户反馈,可以及时响应需求变更,同时因为从使用者角度出发的简单设计,也可以更快地适应变化。 2) 出于易测试和测试独立性的要求,将促使我们实现松耦合的设计,并更多地依赖于接口而非具体的类,提高系统的可扩展性和抗变性。而且TDD明显地缩短了设计决策的反馈循环,是我们几秒或几分钟之内就能获得反馈。 3) 将测试工作提到编码之前,并频繁地运行所有测试,可以尽量地避免和尽早地发现错误,极大地降低了后续测试及修复的成本,提高了代码的质量。在测试的保护下,不断重构代码,以消除重复设计,优化设计结构,提高了代码的重用性,从而提高了软件产品的质量。 4) TDD提供了持续的回归测试,使我们拥有重构的勇气,因为代码的改动导致系统其他部分产生任何异常,测试都会立刻通知我们。完整的测试会帮助我们持续地跟踪整个系统的状态,因此我们就不需要担心会产生什么不可预知的副作用了。 5) TDD所产生的单元测试代码就是最完美的开发者文档,它们展示了所有的API该如何使用以及是如何运作的,而且它们与工作代码保持同步,永远是最新的。 6) TDD可以减轻压力、降低忧虑、提高我们对代码的信心、使我们拥有重构的勇气,这些都是快乐工作的重要前提。 TDD现状 由于发展时间不长,相关应用并不是很成熟。现今越来越多的公司都在尝试实践测试驱动开发,但由于测试驱动开发对开发人员要求比较高,更与开发人员的传统思维习惯相违背,因此实践起来有一定困难。

基于JUnit的单元测试报告

实验3 基于JUnit的单元测试 一、实验目的与要求 1、通过动手实际操作,巩固所学的单元测试相关知识 2、初步了解JUnit工具的使用方法,加深对单元测试的认识 3、熟悉eclipse工具的基本操作,掌握基于Eclipse工具的Java编程 4、学会使用EclEmma对测试覆盖率进行分析 5、通过实际代码案例,掌握单元测试的操作步骤 二、实验设备 1、电脑PC 2、Eclipse 3、Junit工具 4、EclEmma工具 三、实验过程 步骤一:确定单元测试方案 本实验选择StringUtils.java类中的四个方法作为Java单元测试的对象,选用Eclipse作为Java开发工具,下载并安装JUnit和EclEmma工具,使用JUnit进行单元测试,使用EclEmma进行覆盖率分析来辅助进行单元测试。 步骤二:JUnit的下载安装 JUnit是一个开源的Java测试框架,是单元测试框架体系xUnit的一个实例,目前已经成为Java单元测试的标准。JUnit软件包可以从网站http:https://www.wendangku.net/doc/e77088146.html, 中下载,本次实验中使用的是JUnit4.10版本。 无须解压JUnit压缩包,选中eclipse中的工程,在Eclipse菜单Project的子项Properties中选择Java Build Path,单击Libraries标签,单击Add External JARs 按钮,选择junit4.10.jar后单击“打开”按钮,完成JUnit安装,安装完成后重启Eclipse,如图3-1所示。

图3-1在Eclipse中安装JUnit 步骤三:EclEmma的下载与安装 EclEmma是一个开源的覆盖率工具,可以帮助大家在单元测试的时候分析代码覆盖情况,可从网站https://www.wendangku.net/doc/e77088146.html,/download.html中下载Jacoco 的Eclipse插件EclEmma最新版,本实验中使用的是Eclemma3.1.2版本解压eclemma-3.1.3.zip到Eclipse安装路径下的dropins目录中,并且保留如图3-2中的文件和文件夹。打开Eclipse,在工具栏help菜单中选择Install New Software,在Install窗口中单击Add按钮,并在Local的弹出框中选择EclEmma所在路径,添加name,完成后在Install列表中勾选展示的EclEmma 程序,单击Next按钮直到安装完成,如图3-3所示,安装完成后重启Eclipse,工具栏中会出现一个Coverage图标,如图3-4所示。 图3-2将eclemma解压到Eclipse的dropins路径下

相关文档