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

合集下载

使用JUnit进行Java单元测试和Web应用程序调试

使用JUnit进行Java单元测试和Web应用程序调试

使用JUnit进行Java单元测试和Web应用程序调试JUnit是一种Java开发工具,可以用来进行单元测试和Web应用程序的调试。

JUnit在Java开发中非常重要,能够方便地测试Java应用程序的各种功能,发现问题并及时修复。

什么是单元测试?在编写Java应用程序时,我们写了很多小的代码片段,这些小片段被称为单元。

为了确保这些单元互相协调运作,我们需要进行测试,称为单元测试。

单元测试即在应用程序的每个单元上进行测试,以方便发现问题并迅速修复。

单元测试需要用到JUnit等测试工具。

在Java开发中,JUnit被广泛使用,并且是Java应用程序安全和可靠性的保证。

如何使用JUnit进行单元测试?安装JUnit通常,JUnit被打包为JAR文件,可以从其官方网站下载并安装。

安装完成后,需要配置环境变量,以便在Java开发中使用它。

在Linux操作系统中,可以通过apt-get命令或yum命令安装JUnit。

在Eclipse或IntelliJ等Java开发环境中,JUnit已经预装了。

编写测试用例在Java应用程序的单元测试中,需要编写测试用例。

一个测试用例对应一个功能,它包含输入,期望输出和具体操作过程。

例如,下面是一个测试用例:@Testpublic void testAdd() {Calculator calculator = new Calculator();int result = calculator.add(10, 20);assertEquals(30, result);}在这个测试用例中,我们测试了Calculator类的add方法,输入10和20,期望输出30。

如果add方法正确工作,测试将通过。

运行测试用例测试用例编写完成后,需要在JUnit上运行测试,以发现潜在问题。

在Eclipse和IntelliJ中,您可以右键单击测试代码,然后选择“运行单元测试”选项。

JUnit将开始运行测试,测试结果将在JUnit窗口中显示。

实验03.基本路径测试法和单元测试工具JUnit的使用

实验03.基本路径测试法和单元测试工具JUnit的使用

实验报告
实验序号:03 实验项目名称:白盒测试工具JUnit的使用
学号122
姓名专业、班
实验地点实1-511 指导教师实验时间2013/4/18
一、实验目的
●掌握在Eclipse环境下JUnit单元测试工具的安装和使用方法;
●针对一个实际问题,在JUnit环境下设计并执行测试用例。

二、实验要求
●开发环境:Eclipse v3.7及以上版本;JUnit v4.10及以上版本;文本编辑软件。

●硬件要求:CPU PIV 以上,256M 内存,1G 硬盘空间。

●系统要求:Windows98/Me/XP/NT/2000,IE 5 以上。

三、实验内容与步骤
先将junit软件放入Eclipse安装目录下的plugins文件中,然后开始实验:
1、新建Java project命名...:
2、添加junit单元测试软件:
3、a、新建待测试类SaleMachine.java
b、新建Junit Test Case测试类SaleMachineTest.java:
C、对operation进行测试:d、
4、运行测试类(只测试一个用例),可以正确通过:
5、修改测试代码(添加新的测试用例),可以正确通过运行:
6、修改测试代码(添加第3个测试用例),运行出现错误:
7、查看错误提示:
8、根据错误修改代码:a、
b、
运行,任提示出错:
根据错误继续修改:a:
b:
运行,任提示出错:
继续修改错误:
a、
b、
9、修改完,运行测试代码,可以通过:。

在Eclipse中使用JUnit4进行单元测试(高级篇)

在Eclipse中使用JUnit4进行单元测试(高级篇)

在Eclipse中使用JUnit4进行单元测试(高级篇)过前2篇文章,您一定对JUnit有了一个基本的了解,下面我们来探讨一下JUnit4中一些高级特性。

<!--[if !supportLists]-->一、<!--[endif]-->高级Fixture 上一篇文章中我们介绍了两个Fixture标注,分别是@Before 和@After,我们来看看他们是否适合完成如下功能:有一个类是负责对大文件(超过500兆)进行读写,他的每一个方法都是对文件进行操作。

换句话说,在调用每一个方法之前,我们都要打开一个大文件并读入文件内容,这绝对是一个非常耗费时间的操作。

如果我们使用@Before和@After,那么每次测试都要读取一次文件,效率及其低下。

这里我们所希望的是在所有测试一开始读一次文件,所有测试结束之后释放文件,而不是每次测试都读文件。

JUnit的作者显然也考虑到了这个问题,它给出了@BeforeClass 和 @AfterClass两个Fixture 来帮我们实现这个功能。

从名字上就可以看出,用这两个Fixture标注的函数,只在测试用例初始化时执行@BeforeClass方法,当所有测试执行完毕之后,执行@AfterClass进行收尾工作。

在这里要注意一下,每个测试类只能有一个方法被标注为@BeforeClass 或@AfterClass,并且该方法必须是Public和Static的。

<!--[if !supportLists]-->二、<!--[endif]-->限时测试。

还记得我在初级篇中给出的例子吗,那个求平方根的函数有Bug,是个死循环:public void squareRoot(int n) {for (; ;) ; //Bug : 死循环}如果测试的时候遇到死循环,你的脸上绝对不会露出笑容。

因此,对于那些逻辑很复杂,循环嵌套比较深的程序,很有可能出现死循环,因此一定要采取一些预防措施。

实验五 1 使用JUnit执行单元测试

实验五 1 使用JUnit执行单元测试
实践 使用 JUnit 执行单元测试ห้องสมุดไป่ตู้
通过一个简单的例子了解 JUnit 的使用。
控制器 Controller:同客户交互、控制并管理每个请求的处理的组件,既可用于表现层模式,也可以用于业 务层模式。控制器所做的事情:
z 接受请求 z 对请求执行常用计算 z 选择合适的请求处理器 z 路由请求,以使处理器可以执行相关的业务逻辑 z 可能会提供一个顶层的处理器用于处理错误和异常 Controller 是一个很好用的模式,许多应用中都可以看到它。如:在表现层模式中,一个 Web Controller 接 受 HTTP 请求,并把 HTTP 参数、cookie、HTTP 头取出,使得 HTTP 元素易于被其他部分访问。Web Controller 会基于请求中的元素判断需调用的合适的业务逻辑组件。Apache Struts 框架就是 Web Controller 的一个例子。 这里假设一个简单的使用 Controller 情况:用户向系统发送请求 Request,系统中的控制器 Controller 经过 分析 Request 中的信息,然后调用一个合适的服务,并将服务的处理结果 Response 返回给客户。
fail("Not yet implemented"); } } 点击 RunÆRun As JUnit Test,则得到失败的结果,因为现在还没有实现测试的逻辑。
下面开始实现测试的代码,第一个碰到的问题就是,用到的测试类(脚手架之类的东西)如何组织。 一种方案将这些类放在测试用例类中作为内部类;一种方案将其作为作为共有类。 原则是:如果类比较简单,而且以后也不太可能变复杂,则将其写成内部类比较简单方便,否则将其作为
} public void testAddHandler() {

junit单元测试的基本用法

junit单元测试的基本用法

junit单元测试的基本用法JUnit是Java编程语言的一个单元测试框架,它提供了一种标准化的方式来编写和运行测试代码。

JUnit单元测试的基本用法包括以下几个步骤:1. 添加依赖首先,需要在项目中添加JUnit的依赖。

如果你使用的是Maven,可以在pom.xml文件中添加以下依赖:'''xml<dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13.2</version><scope>test</scope></dependency>'''如果你使用的是Gradle,可以在build.gradle文件中添加以下依赖:'''groovydependencies {testImplementation 'junit:junit:4.13.2'}'''2. 编写测试类创建一个Java类,并使用'@Test'注解来标记测试方法。

例如:'''javaimport org.junit.Test;import static org.junit.Assert.*;public class MyTest {@Testpublic void testAddition() {int result = 2 + 2;assertEquals(4, result);}}'''在上面的例子中,我们编写了一个测试方法'testAddition()',它使用'assertEquals()'方法来验证2 + 2的结果是否为4。

Eclpise中单元测试Junit的使用精品PPT课件

Eclpise中单元测试Junit的使用精品PPT课件

– ng.Object(JUnit4)
2020年10月28日
4
setUp()和tearDown()方法

JUnit中的setUp()方法用于写一些初始化代码,每个测试方法
在执行之前都会先执行setUp()。

tearDown()方法用于写一些清理代码,每个测试方法在执行之
后也会再执行tearDown()。

有多少测试方法,setUp()和tearDown()方法就会被执行多少次
(但在JUnit4.0中却可以在整个测试过程中只调用一次)。如
果setUp()、)没有什么代码可写,也可以删除掉。
2020年10月28日
5
JUnit的assert类别

Assert提供一断言方法(assert methods)的集合,像是
assertXXXX()等,這些方法都是静态方法,它们会在断言失败
时丢出一个Throwable的物件,其中会带有断言失败的讯息。

Assert类别中提供了像如assertEquals()、assertTure()、
assertFalse()、assertSame() 、assertNotSame()、
• 由于这种功能在代码中会经常使用,所以一般把它 写在一个工具类中,比如写成工具类StringUtil中的 一个静态方法split。
2020年10月28日
7
应用JUnit的测试实例
• 在Eclipse中创建StringUtil类,实现把字符串分割成 数组的方法split(),代码如下图所示:
2020年10月28日
2020年10月28日
12
编写JUnit测试代码
5. 不仅要测试上述情况,还要测试一些应该抛 出的一场是否已经抛出。所以还要写一个测 试抛出异常的测试方法testSplitException(); 该方法代码如图所示:

基本路径测试法和单元测试工具JUnit的使用

基本路径测试法和单元测试工具JUnit的使用

实验报告实验序号:02 实验项目名称:基本路径测试法和单元测试工具JUnit的使用图一修改后的代码:package first;public class SaleMachine {private int countOfBeer, countOfOrangeJuice, countOfFiveCents, countOfOneDollar;private String[] typeOfGoods = {"Beer", "OrangeJuice"};private String resultOfDeal;public SaleMachine(){initial();}public void initial(){countOfBeer = 6;countOfOrangeJuice = 6;countOfFiveCents = 6;countOfOneDollar = 6;}public SaleMachine(int fiveCents, int oneDollar, int numOfBeer, int numOfOrange)//便于测试的初始化函数{countOfFiveCents = fiveCents;countOfOneDollar = oneDollar;countOfBeer = numOfBeer;countOfOrangeJuice = numOfOrange;}public String currentState(){String state = "Current State\n" +"Beer: " + countOfBeer + "\n" +"Orange Juice: " + countOfOrangeJuice + "\n" +"5 Cents: " + countOfFiveCents + "\n" +"1 Dollar: " + countOfOneDollar;return state;}public String operation(String type, String money)//type是用户选择的产品,money是用户投币种类{if(money.equalsIgnoreCase("5C")) //如果用户投入5角钱{if(type.equals(typeOfGoods[0])) //如果用户选择啤酒{if(countOfBeer>0) //如果还有啤酒{countOfBeer--;countOfFiveCents++;resultOfDeal = "Input Information \n" +"Type: Beer; Money: 5 Cents; Change: 0\n\n" + currentState();return resultOfDeal;}else{resultOfDeal= "Failure Information \n" + "Beer Shortage";return resultOfDeal;}}else if (type.equals(typeOfGoods[1])) //用户选择橙汁{if(countOfOrangeJuice > 0){countOfOrangeJuice--;countOfFiveCents++;resultOfDeal = "Input Information \n" +"Type: OrangeJuice; Money: 5 Cents; Change: 0\n\n" + currentState();return resultOfDeal;}else{resultOfDeal = "Failure Information \n" + "OrangeJuice Shortage";return resultOfDeal;}}else{resultOfDeal = "Failure Information \n" + "Type Error";return resultOfDeal;}}else if(money.equalsIgnoreCase("1D")) //如果用户投入一元钱{//if(countOfFiveCents>0) //如果用户投入一元钱//{if(countOfFiveCents > 0) //如果用户有零钱{if(type.equals(typeOfGoods[0])&&countOfBeer>0)//如果用户选择啤酒而且还有啤酒{countOfBeer--;countOfFiveCents--;countOfOneDollar++;resultOfDeal = "Input Information \n" +"Type: Beer; Money: 1 Dollar; Change: 5 Cents\n\n" + currentState();return resultOfDeal;}else if(type.equals(typeOfGoods[1])&&countOfOrangeJuice>0)//如果用户选择橙汁而且还有橙汁{countOfOrangeJuice --;countOfFiveCents --;countOfOneDollar ++;resultOfDeal = "Input Information \n" +"Type: OrangeJuice; Money: 1 Dollar; Change: 5 Cents\n\n" + currentState();return resultOfDeal;}else{if(type.equals(typeOfGoods[0])&&countOfBeer<=0){resultOfDeal = "Failure Information \n" + "Beer Shortage";return resultOfDeal;}elseif(type.equals(typeOfGoods[1])&&countOfOrangeJuice<=0){resultOfDeal = "Failure Information \n" + "OrangeJuice Shortage";return resultOfDeal;}else{resultOfDeal = "Failure Information \n" + "Type Error";return resultOfDeal;}}}else{resultOfDeal= "Failure Information \n"+ "Change Shortage";return resultOfDeal;}}//else//{//resultOfDeal = "Failure Information \n" + "Money Error";//return resultOfDeal;//}//}resultOfDeal = "Failure Information \n" + "Money Error";return resultOfDeal;}}测试用例代码:package first;import junit.framework.TestCase;public class TestSaleMachine extends TestCase {public void testOperation1() //售货机各资源均有剩余,用户投币5角,选择啤酒{SaleMachine saleMachine1 = new SaleMachine();String expectedResult = "Input Information \n" +"Type: Beer; Money: 5 Cents; Change: 0\n\n" +"Current State\n" +"Beer: 5\n" +"Orange Juice: 6\n" +"5 Cents: 7\n" +"1 Dollar: 6";assertEquals(expectedResult, saleMachine1.operation("Beer", "5C"));}public void testOperation2()//售货机没有啤酒剩余,用户投币5角,选择啤酒{SaleMachine saleMachine2 = new SaleMachine(6,6,0,6);String expectedResult = "Failure Information \n" + "Beer Shortage";assertEquals(expectedResult,saleMachine2.operation("Beer", "5C"));}public void testOperation3() //售货机各资源均有剩余,用户投币5角,选择橙汁{SaleMachine saleMachine3 = new SaleMachine();String expectedResult = "Input Information \n" +"Type: OrangeJuice; Money: 5 Cents; Change: 0\n\n" +"Current State\n" +"Beer: 6\n" +"Orange Juice: 5\n" +"5 Cents: 7\n" +"1 Dollar: 6";assertEquals(expectedResult, saleMachine3.operation("OrangeJuice", "5C"));}public void testOperation4()//售货机没有橙汁,用户投币5角,选择橙汁{SaleMachine saleMachine4 = new SaleMachine(6,6,6,0);String expectedResult = "Failure Information \n" + "OrangeJuice Shortage";assertEquals(expectedResult,saleMachine4.operation("OrangeJuice","5C"));}public void testOperation5()//用户投入5角,选择非啤酒非橙汁{SaleMachine saleMachine5 = new SaleMachine(6,6,6,6);String expectedResult = "Failure Information \n" + "Type Error";assertEquals(expectedResult,saleMachine5.operation("Cola", "5C"));}public void testOperation6()//售货机有啤酒且有5角币,用户投币1元,选择啤酒{SaleMachine saleMachine6 = new SaleMachine(6,6,6,6);String expectedResult = "Input Information \n" +"Type: Beer; Money: 1 Dollar; Change: 5 Cents\n\n" +"Current State\n" +"Beer: 5\n" +"Orange Juice: 6\n" +"5 Cents: 5\n" +"1 Dollar: 7";assertEquals(expectedResult,saleMachine6.operation("Beer", "1D"));}public void testOperation7() //售货机没有啤酒有5角,用户投币1元,选择啤酒{SaleMachine saleMachine7 = new SaleMachine(6,6,0,6);String expectedResult = "Failure Information \n" + "Beer Shortage";assertEquals(expectedResult, saleMachine7.operation("Beer", "1D"));}public void testOperation8()//售货机有橙汁且有5角币,用户投币1元,选择橙汁{SaleMachine saleMachine8 = new SaleMachine(6,6,6,6);String expectedResult = "Input Information \n" +"Type: OrangeJuice; Money: 1 Dollar; Change: 5 Cents\n\n" +"Current State\n" +"Beer: 6\n" +"Orange Juice: 5\n" +"5 Cents: 5\n" +"1 Dollar: 7";assertEquals(expectedResult,saleMachine8.operation("OrangeJuice", "1D"));}public void testOperation9()//售货机有5角没有橙汁,用户投币1元,选择橙汁{SaleMachine saleMachine9 = new SaleMachine(6,6,6,0);String expectedResult = "Failure Information \n" + "OrangeJuice Shortage";assertEquals(expectedResult,saleMachine9.operation("OrangeJuice", "1D"));}public void testOperation10()//售货机有5角,用户投币1元,选择非啤酒非橙汁{SaleMachine saleMachine10 = new SaleMachine(6,6,6,6);String expectedResult = "Failure Information \n" + "Type Error";assertEquals(expectedResult,saleMachine10.operation("Cola", "1D"));}public void testOperation11()//售货机没有5角,用户投币1元{SaleMachine saleMachine11 = new SaleMachine(0,6,6,6);String expectedResult = "Failure Information \n" + "Change Shortage";assertEquals(expectedResult,saleMachine11.operation("Beer", "1D"));}public void testOperation12()//用户投币既不是5角也不是1元{SaleMachine saleMachine12 = new SaleMachine(6,6,6,6);String expectedResult = "Failure Information \n" + "Money Error";assertEquals(expectedResult,saleMachine12.operation("OrangeJuice","4C") );}}。

Eclipse中使用Junit插件测试

Eclipse中使用Junit插件测试

Eclipse中使用Junit插件测试测试对于保证软件开发质量有着非常重要的作用,单元测试更是必不可少,JUnit是一个非常强大的单元测试包,可以对一个/多个类的单个/多个方法测试,还可以将不同的TestCase组合成TestSuit,使测试任务自动化。

Eclipse同样集成了JUnit,可以非常方便地编写TestCase。

我们创建一个Java工程,添加一个example.Hello类,首先我们给Hello类添加一个abs()方法,作用是返回绝对值:下一步,我们准备对这个方法进行测试,确保功能正常。

选中Hello.java,右键点击,选择New->JUnit Test Case:Eclipse会询问是否添加junit.jar包,确定后新建一个HelloTest类,用来测试Hello类。

选中setUp()和tearDown(),然后点击“Next”:选择要测试的方法,我们选中abs(int)方法,完成后在HelloTest.java中输入:JUnit会以以下顺序执行测试:(大致的代码)try {HelloTest test = new HelloTest(); // 建立测试类实例test.setUp(); // 初始化测试环境test.testAbs(); // 测试某个方法test.tearDown(); // 清理资源}catch…setUp()是建立测试环境,这里创建一个Hello类的实例;tearDown()用于清理资源,如释放打开的文件等等。

以test开头的方法被认为是测试方法,JUnit会依次执行testXxx()方法。

在testAbs()方法中,我们对abs()的测试分别选择正数,负数和0,如果方法返回值与期待结果相同,则assertEquals不会产生异常。

如果有多个testXxx方法,JUnit会创建多个XxxTest实例,每次运行一个testXxx方法,setUp()和tearDown()会在testXxx前后被调用,因此,不要在一个testA()中依赖testB()。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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提醒着。

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毫秒之后,测试没有结束测试就失败。

11。

相关文档
最新文档