ImageVerifierCode 换一换
格式:DOCX , 页数:23 ,大小:155.47KB ,
资源ID:8583625      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8583625.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(转载《使用NetBeans开发JUnit测试》.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

转载《使用NetBeans开发JUnit测试》.docx

1、转载使用NetBeans开发JUnit测试使用NetBeans开发工具编写JUnit测试本文介绍在NetBeans开发工具中编写和运行JUnit单元测试的基础部分。测试一个应用程序是开发周期的一部分,编写和维护单元测试可以保证你源代码中独立的方法可以正常工作。NetBeans开发工具整合了对JUnit单元测试框架的支持,使得你可以简便,快捷的创建JUnit测试和测试套件。在这个教程中你将为一个Java项目创建简单的JUnit3和JUnit4单元测试和测试套件。第一部分展示了如何创建JUnit3测试,第二部分展示了如何在JUnit4中使用JUnit注释创建同样的测试。因为测试都是一样的,所以不需

2、要全部完成教程的这两部分。但可以阅读一下这两个版本下的测试是如何编写的,这样你可以看到JUnit4中涉及的一些变化。关于使用JUnit的更多信息,参考www.junit.org内容 创建工程o 创建Java类库项目 编写JUnit3测试o 为Vectors.java创建一个测试用例o 为Vectors.java编写测试方法o 为Utils.java创建测试用例o 为Utils.java创建测试方法o 运行测试 编写JUnit4测试o 为Vectors.java创建一个测试用例o 为Vectors.java编写测试方法o 为Utils.java创建测试用例o 为Utils.java创建测试方法o

3、 运行测试 创建JUnit测试套件o 创建JUnit3测试套件o 创建JUnit4测试套件o 运行测试套件下面的教程你将会使用如下的软件和资源NetBeans IDE6.5, 6.1 or 6.0Java Development Kit (JDK)version 6 or version 5JUnitSampleSol Project创建工程为了完成这个教程,你首选要创建一个Java类库项目,名为JUnit-Sample。创建Java类库工程1. 从主菜单选择文件 新建项目。2. 从Java类别中选择Java类库,点击下一步。3. 为项目输入JUnit-Sample并设置项目位置。4. 如果使

4、用专用文件夹存储库选择被选,取消选择,点击下一步。5. 点击完成。当你创建项目完毕,如果你查看项目的测试库节点,你会看到这个项目包含了JUnit3和JUnit4库。IDE默认为新项目添加这两个库。你第一次创建JUnit测试时,IDE提示你选择一个版本并移除不需要的库。创建Java类这个练习中你下载示例项目并复制文件Utils.java和Vectors.java到你创建的类库项目。1. 右键点击项目的源包节点,在弹出菜单选择新建 Java包。2. 输入sample作为包名。点击完成。3. 下载并解压缩JUnitSampleSol项目,并在编译器中打开。4. 将JUnitSampleSol 项目的

5、源包中的Utils.java和Vectors.java复制到JUnit-Sample 项目中的sample源包。如果你查看类的源代码,你可以看到Utils.java有三个方法 (computeFactorial,concatWords, 和normalizeWord)Vectors.java有两个方法 (equals和scalarMultiplication)。 下一步就是为每个类创建测试类并为这些方法编写测试用例。编写JUnit3单元测试在这部分教程中,你将为类Vectors.java和Utils.java创建基础的JUnit3单元测试。你将使用编译器创建基于项目类的测试类框架。然后你修改这

6、些生成的测试方法并添加新的测试方法。编译器在你第一次为项目创建测试时会提示选择JUnit版本。你选择的版本变为该项目默认的JUnit版本,编译器将之后的测试和测试套件都生成为该版本。创建Vectors.java的测试类在这个练习中你将创建Vectors.java的JUnit测试框架1. 右键点击Vectors.java选择工具 创建JUnit测试。2. 在选择JUnit版本对话框中选择JUnit 3.x。当你选择JUnit3.x编译器将从项目移去JUnit4库。3. 在创建测试对话框中将测试类名改为VectorsJUnit3Test。当你修改测试类名时,你将会看到关于修改名称的警告。默认的名字

7、是基于你要测试的类名,在名称后加上Test。例如,对于类MyClass.java,默认的测试类名是MyClassTest.java。通常最好都保留默认名,但是在这个教程中你需要修改名字,因为你之后将在同一个包中创建JUnit4,测试类名必须是唯一的。4. 取消测试初始化函数和测试释放方法,选择确定。当你点击确定,编译器在测试包sample目录中创建JUnit测试框架。一个项目需要一个目录作为测试包去创建测试。默认的测试包路径目录是项目的根级别,不过这也是依赖于你在项目属性中定义的不同的位置。如果你用编辑器查看生成的类VectorsJUnit3Test.java,你会看到编译器生成了下面的测试类

8、,和对应方法equal和scalarMultiplication的测试方法。public class VectorsJUnit3Test extends TestCase /* * Test of equal method, of class Vectors. */ public void testEqual() System.out.println(equal); int a = null; int b = null; boolean expResult = false; boolean result = Vectors.equal(a, b); assertEquals(expResult

9、, result); / TODO review the generated test code and remove the default call to fail. fail(The test case is a prototype.); /* * Test of scalarMultiplication method, of class Vectors. */ public void testScalarMultiplication() System.out.println(scalarMultiplication); int a = null; int b = null; int e

10、xpResult = 0; int result = Vectors.scalarMultiplication(a, b); assertEquals(expResult, result); / TODO review the generated test code and remove the default call to fail. fail(The test case is a prototype.); 每个生成的测试方法体都按图所示单独提供,它需要被修改后才能成为一个真正的测试用例。如果你不需要自动生成代码,你可以在创建测试对话框中取消缺省方法主题选项。当编译器生成测试方法名时,每个

11、方法名都是在之前加上了test,因为JUnit3使用命名规范和反射识别测试。为了能识别测试方法每个测试方法都需要按照语法test。在JUnit4中就不需要使用这种测试方法命名语法,因为你可以使用标签识别测试方法,并且测试类也不需要继承于TestCase。编写Vectors.java测试方法在这个练习中你修改生成的测试方法,使得他们能运行测试并修改默认输出消息。你不需要为了运行测试而修改输出消息,但你也许想修改输出以帮助识别在JUnit测试结果输出窗口中显示的结果。1. 在编辑器中打开VectorsJUnit3Test.java。2. 修改testScalarMultiplication的测试框

12、架,修改println的值并且移去生成的值。测试方法应该按照下面所示:public void testScalarMultiplication() System.out.println(* VectorsJUnit3Test: testScalarMultiplication(); assertEquals(expResult, result);3. 现在添加一些断言用以测试方法。public void testScalarMultiplication() System.out.println(* VectorsJUnit3Test: testScalarMultiplication(); a

13、ssertEquals( 0, Vectors.scalarMultiplication(new int 0, 0, new int 0, 0); assertEquals( 39, Vectors.scalarMultiplication(new int 3, 4, new int 5, 6); assertEquals(-39, Vectors.scalarMultiplication(new int -3, 4, new int 5,-6); assertEquals( 0, Vectors.scalarMultiplication(new int 5, 9, new int -9, 5

14、); assertEquals(100, Vectors.scalarMultiplication(new int 6, 8, new int 6, 8);这个测试方法使用JUnit的assertEquals方法.。使用这个断言,你要提供输入变量和期待结果。要通过测试,测试方法必须在运行中基于提供的变量成功返回所有的期待结果。你需要添加足够数量的断言以覆盖各种情况的组合。4. 修改testEqual测试骨架,删除生成的方法体并添加如下println。 System.out.println(* VectorsJUnit3Test: testEqual();测试方法现在看起来如下所示:public

15、 void testEqual() System.out.println(* VectorsJUnit3Test: testEqual();5. 修改testEqual方法,添加如下断言:public void testEqual() System.out.println(* VectorsJUnit3Test: testEqual(); assertTrue(Vectors.equal(new int , new int ); assertTrue(Vectors.equal(new int 0, new int 0); assertTrue(Vectors.equal(new int 0,

16、 0, new int 0, 0); assertTrue(Vectors.equal(new int 0, 0, 0, new int 0, 0, 0); assertTrue(Vectors.equal(new int 5, 6, 7, new int 5, 6, 7); assertFalse(Vectors.equal(new int , new int 0); assertFalse(Vectors.equal(new int 0, new int 0, 0); assertFalse(Vectors.equal(new int 0, 0, new int 0, 0, 0); ass

17、ertFalse(Vectors.equal(new int 0, 0, 0, new int 0, 0); assertFalse(Vectors.equal(new int 0, 0, new int 0); assertFalse(Vectors.equal(new int 0, new int ); assertFalse(Vectors.equal(new int 0, 0, 0, new int 0, 0, 1); assertFalse(Vectors.equal(new int 0, 0, 0, new int 0, 1, 0); assertFalse(Vectors.equ

18、al(new int 0, 0, 0, new int 1, 0, 0); assertFalse(Vectors.equal(new int 0, 0, 1, new int 0, 0, 3);这个测试使用JUnit的assertTrue和assertFalse方法测试各种可能的结果。要这个测试通过,theassertTrue必须都为true,assertFalse必须都为false。创建Utils.java测试类现在你开始创建Utils.java的测试框架。在你上一次练习中创建测试时,编译去会提示你选择JUnit版本,这次你不必再次选择。1. 右键点击Utils.java选择工具 创建JU

19、nit测试。2. 如果测试初始化函数和测试释放方法未选,将其选择。3. 在创建测试对话框中修改测试类名为UtilsJUnit3Test选择确定。当你选择确定,编译器会在测试包 samples包中创建UtilsJUnit3Test.java测试文件。你可以看到添加的对应Utils.java中方法的测试框架testComputeFactorial,,testConcatWords,和testNormalizeWord,编译器还会创建测试方法初始化函数setUp和测试方法释放函数tearDown。编写Utils.java测试方法在这个练习中你添加一些通用的JUnit测试要素的测试用例。你也要在方法内

20、添加一个println,因为一些方法默认是没有任何输入的。通过添加println你可以在JUnit测试结果窗口看到方法运行和运行的顺序。测试测试初始化函数和测试释放方法setUp和tearDown方法被用来初始化和释放测试条件。testUtils.java并不需要这两个方法,但是留在这儿可以演示他们是如何工作的。setUp方法是一个初始化方法,在测试类的每个测试用例之前运行。测试并不强制要求有初始化函数,但是如果你需要在运行测试前初始化一些变量,你需要用到初始化函数。tearDown方法是测试类中每个测试用例运行之后的释放方法。测试并不强制要求有测试释放方法,但是如果你需要在运行测试之后释放数

21、据,你需要用到测试释放方法。1. 按照下面进行修改,在每个方法里面添加println。Overrideprotected void setUp() throws Exception super.setUp(); System.out.println(* UtilsJUnit3Test: setUp() method);Overrideprotected void tearDown() throws Exception super.tearDown(); System.out.println(* UtilsJUnit3Test: tearDown() method);当你运行测试,每个print

22、ln的文本会在JUnit测试结果输出窗口显示,如果你不添加println,没有任何输出展现出方法的运行。使用一个简单断言进行测试这个简单的测试用例测试了concatWords方法。你将添加一个新的测试方法名为testHelloWorld,替代使用生成的测试方法testConcatWords,这个方法使用一个简单断言测试方法是否成功拼接字符串。这个测试用例中的assertEquals使用语法assertEquals(EXPECTED_RESULT, ACTUAL_RESULT)测试期望结果是否等于实际结果。这种情况下,如果concatWords方法的输入是Hello, , world and !

23、,期望结果应该等于Hello, world!。1. 删除生成的测试方法testConcatWords。2. 添加如下代码测试concatWords。public void testHelloWorld() assertEquals(Hello, world!, Utils.concatWords(Hello, , , world, !);3. 添加一个println语句在JUnit测试结果窗中显示相关测试文本。public void testHelloWorld() System.out.println(* UtilsJUnit3Test: test method 1 - testHelloW

24、orld(); assertEquals(Hello, world!, Utils.concatWords(Hello, , , world, !);使用Timeout进行测试这个测试演示了如何测试一个需要消耗很多时间才能完成的方法。如果方法消耗太久时间,测试线程会中断并且测试失败。你可以在测试中定义时间限制。测试方法调用了Utils.java中的computeFactorial方法。你可以假设computeFactorial方法是正确的,但在这儿你希望测试计算是否能在1000毫秒内完成。computeFactorial线程和一个测试线程同时被启动。测试线程将在1000毫秒后停止并抛出一个Ti

25、meoutException除非computeFactorial线程。你可以添加一个消息,如果TimeoutException被抛出就显示这个消息。1. 删除生成的测试方法testComputeFactorial。2. 添加testWithTimeout方法,随机生成一个数字计算阶乘。public void testWithTimeout() throws InterruptedException, TimeoutException final int factorialOf = 1 + (int) (30000 * Math.random(); System.out.println(comp

26、uting + factorialOf + !); Thread testThread = new Thread() public void run() System.out.println(factorialOf + ! = + UputeFactorial(factorialOf); ;3. 添加你的导入项importjava.util.concurrent.TimeoutException.4. 在方法中添加下面的代码,如果测试耗时过长,中断线程并显示消息。 Thread testThread = new Thread() public void run() System.out.pri

27、ntln(factorialOf + ! = + UputeFactorial(factorialOf); ; testThread.start(); Thread.sleep(1000); testThread.interrupt(); if (testThread.isInterrupted() throw new TimeoutException(the test took too long to complete); 你可以修改Thread.sleep行的毫秒数值。5. 添加下面的println在JUnit测试结果窗口中显示文本。public void testWithTimeout(

28、) throws InterruptedException, TimeoutException System.out.println(* UtilsJUnit3Test: test method 2 - testWithTimeout(); final int factorialOf = 1 + (int) (30000 * Math.random(); System.out.println(computing + factorialOf + !); 测试一个预期的异常这个测试演示如何测试一个预期的异常。如果没有抛出特定的预期的异常,这个方法就失败了。这种情况下你测试computeFactor

29、ial方法在输入变量为负数(-5)时抛出IllegalArgumentException。1. 添加下面的testExpectedException方法以输入值-5调用computeFactorial。public void testExpectedException() try final int factorialOf = -5; System.out.println(factorialOf + ! = + UputeFactorial(factorialOf); fail(IllegalArgumentException was expected); catch (IllegalArgu

30、mentException ex) 2. 添加下面的println在JUnit测试结果窗口中显示文本。public void testExpectedException() System.out.println(* UtilsJUnit3Test: test method 3 - testExpectedException(); try 屏蔽一个测试这个测试展示了如何临时屏蔽一个测试方法。在JUnit3中,如果方法名不是以test开头,就不会被识别为测试方法。所以你可以在测试方法前添加DISABLED以屏蔽它。1. 删除生成的测试方法testNormalizeWord。2. 添加下面的测试方法到测试类中。public void testTemporarilyDisabled() throws Exception System.out.println(* UtilsJUnit3Test: t

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1