Junit基本教程
Junit4单元测试框架的常用方法介绍

Junit4单元测试框架的常⽤⽅法介绍Junit 介绍:Junit是⼀套框架(⽤于JAVA语⾔),由 Erich Gamma 和 Kent Beck 编写的⼀个回归测试框架(regression testing framework),即⽤于⽩盒测试。
本⽂介绍的内容:1 Junit Myeclipse测试类的⽣成2 JUnit 4 常⽤的⼏个annotation 介绍与使⽤ (@Before @After @Test @Ignore @BeforeClass @AfterClass)3 常⽤的断⾔介绍4 特殊的处理(限时测试,异常测试)5 参数化配置(@Parameters)准备测试代码测试的⽅法(正确、错误⽅法、死循环、抛异常)LogicServicepackage com.logic;public class LogicService {public int add(int x ,int y){ //加法return x+y;}public int sub(int x ,int y){ //减法return x-y;}public int div(int x ,int y){ //除法return x/y;}public int div2(int x ,int y){ //除法做了异常判断try {int z = x/y;} catch (Exception e) {e.printStackTrace();}return x/y;}public void loop(int x ,int y){ //死循环for(;;)x=y;}public void unCompleted(int x ,int y){ //未完成的模块//还在开发中}}⼀ Myeclipse测试类的⽣成1 对需要测试的类点右键 NEW ⼀个Junit Test Case2 点击NEXT注意 1 选择NEW Junit 4 test2 source folder 是默认会填写上之前右键NEW的那个类,如果不是的话,请⾃⾏进⾏修改3 package 默认会填写当前的包名个⼈建议重新开个测试包-即在包后⾯加上.test 表⽰是单元测试⽤例专⽤包与源代码分离4 name 默认会在之前右键NEW的那个类的基础的后⾯加上Test 如果不是的话,建议⾃⾏进⾏修改,便于标⽰5 初始化的⽅法,我⼀般会勾上个setUp,这个请随意。
junit常用注解+junit断言详解

junit常⽤注解+junit断⾔详解@Test: 在junit3中,是通过对测试类和测试⽅法的命名来确定是否是测试,且所有的测试类必须继承junit的测试基类。
在junit4中,定义⼀个测试⽅法变得简单很多,只需要在⽅法前加上@Test就⾏了。
注意:测试⽅法必须是public void,即公共、⽆返回数据。
可以抛出异常。
@Ignore: 有时候我们想暂时不运⾏某些测试⽅法\测试类,可以在⽅法前加上这个注解。
在运⾏结果中,junit会统计忽略的⽤例数,来提醒你。
但是不建议经常这么做,因为这样的坏处时,容易忘记去更新这些测试⽅法,导致代码不够⼲净,⽤例遗漏。
使⽤此标注的时候不能与其它标注⼀起使⽤,如:和@Test 标注⼀起使⽤,那就没⽤了@BeforeClass: 当我们运⾏⼏个有关联的⽤例时,可能会在数据准备或其它前期准备中执⾏⼀些相同的命令,这个时候为了让代码更清晰,更少冗余,可以将公⽤的部分提取出来,放在⼀个⽅法⾥,并为这个⽅法注解@BeforeClass。
意思是在测试类⾥所有⽤例运⾏之前,运⾏⼀次这个⽅法。
例如创建数据库连接、读取⽂件等。
注意:⽅法名可以任意,但必须是public static void,即公开、静态、⽆返回。
这个⽅法只会运⾏⼀次。
@AfterClass: 跟@BeforeClass对应,在测试类⾥所有⽤例运⾏之后,运⾏⼀次。
⽤于处理⼀些测试后续⼯作,例如清理数据,恢复现场。
注意:同样必须是public static void,即公开、静态、⽆返回。
这个⽅法只会运⾏⼀次。
@Before: 与@BeforeClass的区别在于,@Before不⽌运⾏⼀次,它会在每个⽤例运⾏之前都运⾏⼀次。
主要⽤于⼀些独⽴于⽤例之间的准备⼯作。
⽐如两个⽤例都需要读取数据库⾥的⽤户A信息,但第⼀个⽤例会删除这个⽤户A,⽽第⼆个⽤例需要修改⽤户A。
那么可以⽤@BeforeClass创建数据库连接。
junit5官方用户手册

junit5官⽅⽤户⼿册官⽅⽂档中⽂版1总览JUnit5最低需要JDK8来⽀持。
与之前的版本不同,JUnit5由3个模块组成:1、JUnit Platform,⽤于在JVM上启动测试框架,并通过命令⾏定义TestEngine API。
可以相当于,要⽤他做测试引擎。
简单地说这个有关的包是⽤来调⽤测试⽤例的,IDE正式因为加载了与这个有关的插件,所以idea⾥边才可以右键选择执⾏测试⽅法。
2、JUnit Jupiter是⽤于在JUnit 5中编写测试和扩展的新编程模型和扩展模型的组合。
提供了⼀堆测试要⽤的注解和类。
3、Junit Vintage,⽤于在JUnit5平台上运⾏JUnit3和4测试⽤例。
1.1. JUnit PlatformGroup ID: org.junit.platformVersion: 1.2.0Artifact IDs:junit-platform-commonsJUnit 内部通⽤类库/实⽤⼯具,它们仅⽤于JUnit框架本⾝,不⽀持任何外部使⽤,外部使⽤风险⾃负。
junit-platform-console⽀持从控制台中发现和执⾏JUnit Platform上的测试。
详情请参阅。
junit-platform-console-standalone⼀个包含了Maven仓库中的⽬录下所有依赖项的可执⾏JAR包。
详情请参阅。
junit-platform-engine测试引擎的公共API。
详情请参阅。
junit-platform-gradle-plugin⽀持使⽤来发现和执⾏JUnit Platform上的测试。
junit-platform-launcher配置和加载测试计划的公共API – 典型的使⽤场景是IDE和构建⼯具。
详情请参阅。
junit-platform-runner在⼀个JUnit 4环境中的JUnit Platform上执⾏测试和测试套件的运⾏器。
详情请参阅。
junit-platform-suite-api在JUnit Platform上配置测试套件的注解。
junit使用简明手册

junit使用简明手册来自网辉在使用XP进行开发的过程,unit test是必不可少的环节。
作为unit test,junit是首选的工具。
本文从使用目的、如何使用、以及使用中需要考虑的问题,简略描述了junit的基本用法。
使用目的junit是java中书写unit test的framework,目前一些流行的unit test工具大都都是在junit上扩展而来的。
目前它的版本是junit3.8.1,可以从上下载。
用法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 图形界面:java junit.swingui.TestRunner XXXXXb 字符界面:java junit.textui.TestRunner XXXXX2. 使用例子:import junit.frmework.TestCase;public class TestSample extends TestCaset{public void testMethod1(){assertTrue( true);}3. setUp与tearDown,这两个函数是junit framework中提供初始化和反初始化每个测试方法的。
setUp 在每个测试方法调用前被调用,负责初始化测试方法所需要的测试环境;tearDown在每个测试方法被调用之后被调用,负责撤销测试环境。
它们与测试方法的关系可以描述如下:测试开始-> setUp -> testXXXX -> tearDown ->测试结束4. 使用例子:import junit.frmework.TestCase;public class TestSample extends TestCaset{protected void setUp(){//初始化……}public void testMethod1(){assertTrue( true);}potected void tearDown(){//撤销初始化……}}5. 区分fail、exception。
junit单元测试步骤

junit单元测试步骤:1、导入包junit测试包:JUnit测试版本,3.81版,4.0版,导入对应的jar包; 2、写一个类扩展(继承) TestCase; 3、在需要测试的方法名前加test生成新的测试方法;4、运行测试,用断言(assert***)的方法测试成功(显示绿色)或失败(显示红色),或者自己判断结果正确与否。
junit单元测试:
1、单元测试(unittesting),是在计算机编程中,针对程序模块(软件设计的最小单位)来进行正确性检验的测试工作。
2、单元测试(模块测试)是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。
3、单元测试会为我们的承诺做保证。
编写单元测试就是用来验证这段代码的行为是否与我们期望的一致。
在实践工作中,进行了完整计划的单元测试和编写实际的代码所花费的精力大致上是相同的。
一旦完成了这些单元测试工作,很多Bug将被纠正,在确信他们手头拥有稳定可靠的部件的情况下,开发人员能够进行更高效的系统集成工作。
junit 使用指南及作业规范(对比Junit3与4)

使用指南及作业规范V1.0 Keep the bar green keep the code clean!目录1.JUNIT总览 (3)1.1简介 (3)1.2特性 (3)1.3适用对象 (3)2JUNIT使用 (3)2.1JUNIT3.X使用 (3)2.1.1下载与安装 (3)2.1.2使用方法 (4)2.1.2.1基本流程(我们一般都是这么写) (4)2.1.2.2重要概念和类(你必须了解的东西) (5)2.1.2.3JUNIT固件的安装与拆除(测试方法启动和结束之前要做的) (6)2.1.2.4Eclipse中使用junit(有了开发工具对junit的支持后) (8)2.2JUNIT4.X使用 (12)2.2.1下载与安装 (12)2.2.2使用方法 (13)2.2.2.1与3.x版本的异同(看谁更简单) (13)2.2.2.2常用注解(体验annotation的简单便捷) (13)2.2.2.3 4.x新特性实战(实践出真知) (14)3作业规范 (21)4附录 (22)4.1下版计划 (22)4.2修订记录 (23)4.3参考文献 (23)1.JUNIT总览1.1简介JUnit是由Erich Gamma 和Kent Beck 编写的一个回归测试框架。
Junit测试是程序员测试,即所谓白盒测试。
项目主页:/下载地址:https:///KentBeck/junit/downloads/projects/junit/files/junit/目前主要版本有3.X和4.X,它们之间存在很大的差别,故本文档将分别介绍3.X和4.X.1.2特性JUnit是一个开放源代码的Java测试框架,用于编写和运行可重复的测试。
他是用于单元测试框架体系xUnit的一个实例(用于java语言)。
它包括以下特性:1、用于测试期望结果的断言(Assertion)2、用于共享共同测试数据的测试工具3、用于方便的组织和运行测试的测试套件4、图形和文本的测试运行器1.3适用对象JUnit可以用于程序开发人员或专业测试人员进行单元测试。
培训教材JUnit培训

对测试动作特征的提取 TestCase和TestSuite都实现了该接口
TestListener包含四个方法:addError()、
addFailure()、startTest()和endTest(),负责对测试 结果的处理以及测试驱动过程的动作特征的提取 TestRunner实现了该接口
21
另一个例子
在Car类中获取汽车车轮数量方法,代码很简单, 仅起例子作用: public class Car { public int getWheels() { return 4; } }
22
编写测试代码:类Car测试代码
import junit.framework.*; public class CarTest extends TestCase { protected int expectedWheels; protected Car myCar; //建立构造方法,但不能用于进行测试环境的初始化 public CarTest(String name) { super(name); }
15
JUnit基本概念:TestResult
TestResult收集了TestCase的执行结果。保 存了所有的测试细节,通过或者失败 TestRunner 用TestResult来报告测试的结 果
• 如果结果不是60,Junit会创建一个TestFailure 对象保 存在TestResult中。 • 如果TestResult中没有TestFailure,说明代码是正确的, 状态条显示为绿色,如果有则报告。
19
回顾
简单的说,就是:
一个TestRunner运行一个TestSuite
Java单元测试:JUnit和Mockito的使用指南

Java单元测试:JUnit和Mockito的使用指南引言:在软件开发过程中,单元测试是一个至关重要的环节。
通过对代码的逐个单元进行测试,可以确保代码的质量和稳定性。
在Java开发中,JUnit和Mockito是两个常用的工具,它们可以帮助开发者更轻松地进行单元测试。
本文将为您介绍JUnit和Mockito的使用指南,帮助您更好地掌握这两个工具的功能和用法。
一、JUnit简介JUnit是一个Java语言的单元测试框架,它提供了一系列的注解和断言方法,方便开发者编写和执行单元测试。
JUnit的核心思想是“测试驱动开发”(Test-Driven Development,TDD),即在编写代码之前先编写测试用例,通过不断迭代的方式来开发和完善代码。
1.1 JUnit的安装和配置要使用JUnit,首先需要将JUnit的相关库文件导入到项目中。
可以通过Maven或Gradle等构建工具来管理依赖,也可以手动下载并导入JUnit的jar包。
导入完成后,就可以在代码中使用JUnit的注解和断言方法。
1.2 编写测试用例在JUnit中,每个测试用例都是一个独立的方法。
可以使用@Test注解来标记测试方法,JUnit会自动执行被标记的方法,并判断测试结果是否符合预期。
例如:```@Testpublic void testAddition() {int result = Calculator.add(2, 3);assertEquals(5, result);}```上述代码中,我们使用@Test注解标记了一个测试方法,该方法调用了被测试的Calculator类的add方法,并使用断言方法assertEquals来判断结果是否等于预期值。
如果测试通过,JUnit会输出“OK”;如果测试失败,JUnit会输出错误信息。
1.3 JUnit的高级特性除了基本的注解和断言方法外,JUnit还提供了一些高级特性,如参数化测试、测试套件和测试运行器等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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。
三者组成了composiste pattern。
通过组装自己的TestSuite,可以完成对添加到这个TestSuite中的所有的TestCase的调用。
而且这些定义的TestSuite还可以组装成更大的TestSuite,这样同时也方便了对于不断增加的TestCase的管理和维护。
它的另一个好处就是,可以从这个TestCase树的任意一个节点(TestSuite或TestCase)开始调用,来完成这个节点以下的所有TestCase的调用。
提高了unit test的灵活性。
9. 使用Ant junit task。
我们除了使用java来直接运行junit之外,我们还可以使用junit提供的junit task与ant结合来运行。
涉及的几个主要的ant task如下:
- <junit>,定义一个junit task
- <batchtest>,位于<junit>中,运行多个TestCase
- <test>,位于<junit>中,运行单个TestCase
- <formatter>,位于<junit>中,定义一个测试结果输出格式
- <junitreport>,定义一个junitreport task
- <report>,位于<junitreport>中,输出一个junit report
具体的语法请参见相关文档。
10. 使用例子:
junit的使用并不很难,然而要书写一个好的TestCase却并非易事。
一个不好的TestCase往往是既浪费了时间,也起不了实际的作用。
相反,一个好的TestCase,不仅可以很好的指出代码中存在的问题,而且也可以作为代码更准确的文档,同时还在持续集成的过程中起非常重要的作用。
在此给出书写TestCase 时需要注意的几点:
- 测试的独立性:一次只测试一个对象,方便定位出错的位置。
这有2层意思:一个TestCase,只测试一个对象;一个TestMethod,只测试这个对象中的一个方法。
- 给测试方法一个合适的名字。
- 在assert函数中给出失败的原因,如:assertTrue( “… should be true”, ……),方便查错。
在这个例子中,如果无法通过assertTrue,那么给出的消息将被显示。
在junit中每个assert函数都有第一个参数是出错时显示消息的函数原型。
- 测试所有可能引起失败的地方,如:一个类中频繁改动的函数。
对于那些仅仅只含有getter/setter的类,如果是由IDE(如Eclipse)产生的,则可不测;
如果是人工写,那么最好测试一下。
- 在setUp和tearDown中的代码不应该是与测试方法相关的,而应该是全局相关的。
如针对与测试方法A和B,在setUp和tearDown中的代码应该是A和B 都需要的代码。
- 测试代码的组织:相同的包,不同的目录。
这样,测试代码可以访问被测试类的protected变量/方法,方便测试代码的编写。
放在不同的目录,则方便了测试代码的管理以及代码的打包和发布。
一个例子如下:。