junit_junit测试 - CSDN
junit 订阅
JUnit是一个Java语言的单元测试框架。它由Kent Beck和Erich Gamma建立,逐渐成为源于Kent Beck的sUnit的xUnit家族中最为成功的一个。 JUnit有它自己的JUnit扩展生态圈。多数Java的开发环境都已经集成了JUnit作为单元测试的工具。 [1]  JUnit是由 Erich Gamma 和 Kent Beck 编写的一个回归测试框架(regression testing framework)。Junit测试是程序员测试,即所谓白盒测试,因为程序员知道被测试的软件如何(How)完成功能和完成什么样(What)的功能。Junit是一套框架,继承TestCase类,就可以用Junit进行自动测试了。 展开全文
JUnit是一个Java语言的单元测试框架。它由Kent Beck和Erich Gamma建立,逐渐成为源于Kent Beck的sUnit的xUnit家族中最为成功的一个。 JUnit有它自己的JUnit扩展生态圈。多数Java的开发环境都已经集成了JUnit作为单元测试的工具。 [1]  JUnit是由 Erich Gamma 和 Kent Beck 编写的一个回归测试框架(regression testing framework)。Junit测试是程序员测试,即所谓白盒测试,因为程序员知道被测试的软件如何(How)完成功能和完成什么样(What)的功能。Junit是一套框架,继承TestCase类,就可以用Junit进行自动测试了。
信息
优    点
极限编程、重构等
建立者
Kent Beck和Erich Gamma
适用范围
编写和运行可重复的测试
中文名
JUnit
性    质
单元测试框架
特    性
用于共享共同测试数据的测试工具等
junit优点
另外junit是在极限编程和重构(refactor)中被极力推荐使用的工具,因为在实现自动单元测试的情况下可以大大的提高开发的效率,但是实际上编写测试代码也是需要耗费很多的时间和精力的,那么使用这个东西好处到底在哪里呢?笔者认为是这样的:极限编程要求在编写代码之前先写测试,这样可以强制你在写代码之前好好的思考代码(方法)的功能和逻辑,否则编写的代码很不稳定,那么你需要同时维护测试代码和实际代码,这个工作量就会大大增加。因此在极限编程中,基本过程是这样的:构思-> 编写测试代码-> 编写代码-> 测试,而且编写测试和编写代码都是增量式的,写一点测一点,在编写以后的代码中如果发现问题可以较快的追踪到问题的原因,减小回归错误的纠错难度。重构其好处和极限编程中是类似的,因为重构也是要求改一点测一点,减少回归错误造成的时间消耗。其他情况我们在开发的时候使用junit写一些适当的测试也是有必要的,因为一般我们也是需要编写测试的代码的,可能原来不是使用的junit,如果使用junit,而且针对接口(方法)编写测试代码会减少以后的维护工作,例如以后对方法内部的修改(这个就是相当于重构的工作了)。另外就是因为junit有断言功能,如果测试结果不通过会告诉我们哪个测试不通过,为什么,而如果是像以前的一般做法是写一些测试代码看其输出结果,然后再由自己来判断结果是否正确,使用junit的好处就是这个结果是否正确的判断是它来完成的,我们只需要看看它告诉我们结果是否正确就可以了,在一般情况下会大大提高效率。
收起全文
精华内容
参与话题
  • Junit使用教程(一)

    万次阅读 多人点赞 2013-07-30 15:09:29
    几乎所有程序员都听说过Junit的大名,但不知真正懂得运用它的人有多少,我便是其中的一个小白。 知道Junit是用来测试的,但却把“宝刀”当成了“菜刀”用。为了从此不再菜鸟,特此总结整理了下Junit的知识点。 一...

    几乎所有程序员都听说过Junit的大名,但不知真正懂得运用它的人有多少,我便是其中的一个小白。

    知道Junit是用来测试的,但却把“宝刀”当成了“菜刀”用。为了从此不再菜鸟,特此总结整理了下Junit的知识点。

    一、建立Junit测试类

    1. 右击test测试包,选择New-->Oher...

     

    2. 在窗口中找到Junit,选择Junit Test Case

    3. 输入名称(Name),命名规则一般建议采用:类名+Test。Browse...选择要测试的类,这里是StudentService。

    4. 勾选要测试的方法

    5. 生成后,效果如下:

    这里import static是引入Assert类中静态属性或静态方法的写法。原来要Assert.fail(),现在只需直接fial()即可,即省略了Assert。

     

    其实不通过Junit新建向导来建立也可以,随便建立一个新类后,只需在方法上加入@Test注解即可。

     

    下一篇,我们将具体介绍下Junit的知识点。

    展开全文
  • Junit的基本使用(详解)

    万次阅读 多人点赞 2018-05-01 19:18:49
    Junit是xUnit的一个子集,在c++,paython,java语言中测试框架的名字都不相同xUnit是一套基于测试驱动开发的测试框架其中的断言机制:将程序预期的结果与程序运行的最终结果进行比对,确保对结果的可预知性java所用的...

    什么是Junit?

    Junit是xUnit的一个子集,在c++,paython,java语言中测试框架的名字都不相同

    xUnit是一套基于测试驱动开发的测试框架

    其中的断言机制:将程序预期的结果与程序运行的最终结果进行比对,确保对结果的可预知性

    java所用的测试工具是Junit,Junit不需要去网上下载,在ecliplse中有:

    1.新建一个工程

    2.工程右键,点击Properties

    3.


    4.


    5.


    6.


    7.



    这是使用Junit最先要完成的 在完成了这个就进入下一步吧!

    来简单使用一下Junit!

    新建一个类:Calculate

    package com.fulisha.textjunit;
    
    public class Calculate {
    public int add(int a,int b){
    	return a+b;
    }
    public int substract(int a , int b){
    	return a-b;
    }
    public int cheng(int a,int b){
    	return a*b;
    }
    public int chu(int a, int b){
    	return a/b;
    }
    
    }
    

    再新建一个测试类

    package com.fulisha.textjunit;
    
    import static org.junit.Assert.*;
    
    import org.junit.Test;
    
    public class CalculateTest {
    
    	@Test
    	public void testAdd(){
    		assertEquals(6,new Calculate().add(3, 3));
    	}
    	
    	@Test
    	public void testsubstract(){
    		assertEquals(2,new Calculate().substract(5, 3));
    	}
    	
    	@Test
    	public void testcheng(){
    		assertEquals(15,new Calculate().cheng(5, 3));
    	}
    	@Test
    	public void testchu(){
    		assertEquals(2,new Calculate().chu(6, 3));
    	}
    }
    

    测试后的结果:


    对此进行总结:

    1.测试方法上必须使用@Test

    2.测试方法必须使用 public void进行修饰

    3.新建一个源代码目录来存放测试代码

    4.测试类的包应该和被测试类的包一样

    5.测试单元中的每个方法一定要能够独立测试,其方法不能有任何依赖

    如果,测试的方法多,不想一个个的建立测试方法那么:

    1.选择要测试的方法,右击New  选择other



    2.


    3.


    4.


    5.


    6.


    7.创建结果

    package com.fulisha.textjunit;
    
    import static org.junit.Assert.*;
    
    import org.junit.Test;
    
    public class CalculateTest3 {
    
    	@Test
    	public void testAdd() {
    		fail("Not yet implemented");
    	}
    
    	@Test
    	public void testSubstract() {
    		fail("Not yet implemented");
    	}
    
    	@Test
    	public void testCheng() {
    		fail("Not yet implemented");
    	}
    
    	@Test
    	public void testChu() {
    		fail("Not yet implemented");
    	}
    
    }
    

    再在这个基础上进行修改测试类方法


    在测试中结果中关于Failure和error的解释

    1.Failure 一般由测试单元使用断言方法判断失败引起的,这个报错,说明测试点发现了问题,即程序输出的结果和我们预期的不一样

    2.error 是由代码异常引起的,它可以产生代码本身的错误,也可以是测试代码中的一个隐藏bug

    !!!测试用例不是用来证明你是对的,而是用来证明你没错


    关于Junit运行流程

    package com.fulisha.textjunit;
    
    import static org.junit.Assert.*;
    
    import org.junit.After;
    import org.junit.AfterClass;
    import org.junit.Before;
    import org.junit.BeforeClass;
    import org.junit.Test;
    
    public class JunitFlowText {
    
    	@BeforeClass
    	public static void setUpBeforeClass() throws Exception {
    	System.out.println("this is beforeClasss....");
    	}
    
    	@AfterClass
    	public static void tearDownAfterClass() throws Exception {
    		System.out.println("this is afterClasss....");
    	}
    
    	@Before
    	public void setUp() throws Exception {
    		System.out.println("this is brfore....");
    	}
    
    	@After
    	public void tearDown() throws Exception {
    		System.out.println("this is after....");
    	}
    
    	@Test
    	public void test1() {
    		System.out.println("this is test1....");
    	}
    	@Test
    	public void test2() {
    		System.out.println("this is test2....");
    	}
    }
    

    运行结果:



    总结:

    @BeforeClass

    修饰的方法会在所有方法被调用前执行,且该方法时静态的,所以当测试类被加载后就接着运行它,而且在内存中他只会存在一份实例,他比较适合加载配置文件(针对所有测试,只执行一次 )

    @AfterClass

    所修饰的方法通常用来对资源管理,如关闭数据库连接(针对所有测试,只执行一次 )

    @Before和@After 会在每个测试方法前后各执行一次

    @Test:测试方法,在这里可以测试期望异常和超时时间

    @Ignore:忽略的测试方法  

    展开全文
  • Junit测试工具使用

    千次阅读 2018-03-27 09:49:21
    Junit是单元测试框架工具,在项目开发中是经常用到的,利用JUnit4进行单元测试非常简单方便,所以熟悉Junit是很有必要的。 Junit优点: 安装使用方便 可以同时执行多个测试方法 测试结果直观明了 本文记录Junit...

    Junit是单元测试框架工具,在项目开发中是经常用到的,利用JUnit4进行单元测试非常简单方便,所以熟悉Junit是很有必要的。
    Junit优点:

    1. 安装使用方便
    2. 可以同时执行多个测试方法
    3. 测试结果直观明了

    本文记录Junit使用的基本知识:

     1. 编写测试类
     2. 使用断言
     3. 使用suite套件对多个测试类进行批处理
    

    运行环境和工具:

    1. Intellij IEDA
    2. juint-4.10(下载地址)

    详细步骤:

    1. 打开IDEA,新建java项目

    2. 在项目中导入junit包
      File->Project Structure->libraries->点击‘+’ ->java->找到下载的junit-4.10->apply->ok
      可以看到junit已经导入项目
      这里写图片描述

    3. 在src中编写源代码(被测试的类及其方法),编写测试类和测试方法,项目目录结构如下:
      这里写图片描述
      被测试类代码:
    package main.com.hnust.learnjunit;
    
    public class StringOpeator {
    
        public String sayHello(String str1,String str2){
            return str1+str2;
        }
    }
    

    测试类代码及其要求:

    package test.junittest;
    
    import main.com.hnust.learnjunit.StringOpeator;
    import org.junit.Assert;
    import org.junit.Test;
    
    public class JunitTestOne {
        /*Test注解标记*/
        @Test
        /*固定格式:(public修饰,void返回值,自定义测试方法名称,无参)*/
        public void test1(){
            StringOpeator so =new StringOpeator();
            String str=so.sayHello("Hello","Junit");
            //断言语法
            Assert.assertEquals("HelloJunit",str);
        }
    }

    在测试类中右键,选择“Run**”,可以看到下面的测试执行结果窗口
    这里写图片描述
    原谅绿加勾表示测试结果正确。

    4 . 尝试在测试类中多加入几个test方法,也就是多加入几组测试用例,测试运行:这里写图片描述可以看到测试结果窗口左侧共有三个测试方法被执行,其中test1测试结果正确test2,test3出现错误,我们可以点击它,然后在右侧看错误原因,可以知道是null空指针异常,说明被测试类的代码有bug,我们可以对其进行空指针处理,重新运行:
    这里写图片描述可以看到test2测试方法结果正确,同理可以修改代码使得test3测试方法结果也正确。
    5. 以上使用到Assert断言机制,所谓断言,就是判断是或者不是,它的作用和优点是什么呢?就是比较预期结果和实际结果,以图形化的方式显示结果,就像上图中,出现原谅绿色勾就表示预期结果和实际结果一样,而出现红色叹号就说明测试用例没通过,就需要改善源代码,避免程序潜在漏洞了。以Assert.assertEquals(“HelloJunit”,str)这行代码为例,”HelloJunit”是预期结果,str是实际结果,assertEqulas方法就是判断这两个字符串是否相同。当然断言的判断方法不止这个,介绍几种常见的断言方法:
    assertEquals(expected,actural)
    assertSame(),assertNotSame()
    –以上两种区别和str1.equals(str2),str1==str2区别一样,前者比较值,后者比较地址。
    assertFalse(),assertTrue()
    assertNull(actural),assertNotNull(actural)

    6.将测试类代码优化,提取出相同的代码放入测试类中,每一个测试方式是一个线程,重复代码使得测试程序占用过多资源

    7.除了@Test,其他常用注解的使用
    @Before在每个测试方法之前执行
    @After在每个测试方法之后执行
    @BeforeClass在所有方法执行之前执行
    @AfterClass在所有方法执行之后执行
    这里写图片描述
    由此可见,Before和After方法执行了三次,分别在三个测试方法前后执行,BeforeClass和AfterClass只执行一次,根据类加载机制,应该是在加载阶段就已经定义,属于类的共有方法,也就是静态方法,所以要使用static关键字修饰。

    8 . 使用suite套件对多个测试类进行批处理
    先建立多个测试类。。
    然后建立一个测试总类
    测试总类使用suite套件,格式如下,运行结果如下
    这里写图片描述

    这就是Junit基本使用知识,以后在使用过程中再挖掘其更多的功能,熟练使用测试工具对于程序员写出高质量代码,减少程序bug有很大的帮助。

    展开全文
  • JUnit是什么

    2020-07-30 23:32:40
    JUnit是一个开发源代码的Java测试框架,用于编写和运行可重复的测试。他是用于单元测试框架体系xUnit的一个实例(用于java语言)。
  • Junit使用的超简单介绍

    万次阅读 多人点赞 2016-09-06 23:41:31
    JUnit4

    前言:我对Junit了解的并不多,只是今天突然听到有人提到了它,而且现在时间还早,所以我觉得我不妨更一篇关于Junit4的超级超级简单的用法,全当是为了省去看官网demo的时间吧。这里仅仅谈@Test夹具。

    一、JUnit超级简介

    1 . 官网

    http://junit.org 或者 http://junit.org/junit4/
    没有比官网更权威的介绍了。
    这里写图片描述
    上图中的4.12,4.11等是JUnit4的版本。JUnit3是必须继承junit.framework.TestCase类的,而且可能还需要其他一些设置。而JUnit4是不需要的。

    2. xUnit

    xUnit是一套基于测试驱动开发的测试框架,包括:
    1. PythonUnit
    2. CppUnit
    3. JUnit

    二、超简单的使用Demo

    和其他人一样,谈到JUnit的demo就喜欢用calculate类,我也不例外来以它为例吧。

    1. 编写需要被测试的java类

    public class Calculate {
    
        public int add(int a, int b) {
            return a + b;
        }
    
        public int substract(int a, int b) {
            return a - b;
        }
    
        public int multiply(int a, int b) {
            return a * b;
        }
    
        public int divide(int a, int b) {
            // 这里只是最简单的测试demo,暂不做容错处理
            return a / b;
        }
    }

    2 . 导入Junit

    这里写图片描述
    这里写图片描述
    这里写图片描述
    因为这里以Junit4为例,所以这里选Junit4

    3.编写测试类

    用来测试Calculate类中的add()方法
    这里写图片描述

    4. 运行测试类

    这里写图片描述

    5 . 测试结果分析

    这里写图片描述
    (1). Runs:表示总共有几个测试方法,已经运行了几个;
    (2). Errors:表示抛出异常的测试方法的个数;
    (3). Failures:表示失败的测试方法的个数;
    (4). 打钩:表示通过测试方法。
    (5). 另外有个绿色的进度条表示测试成功,红色的进度条则表示测试失败。
    demo的结构:
    这里写图片描述

    三、完善JUnit

    这里稍微规范一下Junit。是基于上述demo的。
    1. 在src下新建source Floder取名为test
    这里写图片描述
    然后将之前的CalculateTest类连同包一起移动到test文件夹下,如下
    这里写图片描述
    2. 自动添加测试方法
    假设现在要测试的类里面有很多方法,总不能一个个的手写这些方法吧,所以可以用用IDE了。使用IDE自动生成测试类。因为将上面的CalculateTest类移动到了test目录下,所以这里IDE自动生成的测试Calculate类的测试类取名叫CalculateAutoTest。
    这里写图片描述
    其生成步骤如下:
    (1). 在被测试的类Calculate上右键new一个JUnit Test Case,如下。
    这里写图片描述
    这里写图片描述
    这里写图片描述
    (2). 选择相应要测试的方法
    这里写图片描述
    然后就可以看到自动生成的相应的测试方法了。
    这里写图片描述
    (3). 同上右键CalculateAutoTest运行
    当然这里还没有具体实现,所以测试会失败的。
    3. 几个规范点
    (1). 测试方法必须使用@Test注解,并且方法必须是public void,不能带任何参数;
    (2). 新建一个Source Folder来存放测试代码,但是测试类的包名和被测试类的必须保持一致;
    (3). 测试单元中的每个方法必须可以独立,测试方法之间不能有任何的依赖;
    (4). 测试类最好使用Test作为类名的后缀,测试方法最好使用test作为方法名的前缀

    四、后记

    “测试用例不是用来证明你是对的,而是用来证明你没有错”,自己测试除数为0,以及预计结果不对的情况来看看errors和fails,然后体会。

    ===========无聊分割线=============
    草稿箱的“计算机专业的基本素养”都快发霉了。。。

    展开全文
  • (一)JUnit介绍 目录 (一)JUnit介绍 1.什么是单元测试? 2.什么是单元测试框架? 3.什么是JUnit? (二)JUnit 安装 1.IntelliJ IDEA 安装 Junit 2.Maven 安装 Junit (三)JUnit 编写单元测试 1.编写...
  • jUnit4详细教程

    2020-07-28 23:32:21
    因 jdk5 中的新特性,JUnit4 也因此有了很大的改变。下面详细介绍 JUnit4 的使用方法,只是举个例子说明junit4 的使用
  • 本博文碍于作者的学识与见解,难免会有疏漏错误之处,请谅解。 ... 前言 很久很久很久很久…没有写技术向的文章了,今天呢就来写一篇关于单元测试的文章把。写这篇文章的原因呢是因为几个月前看到隔壁组的同事写的单元...
  • 本资源包包含4.4、4.7、4.8.2、4.11等多个版本的jar包...Junit jar包可供开发过程中对程序的部分功能进行测试,使用时将jar包导入工程,新建测试类,编写测试方法(方法上行需要添加“@Test”标识),以junit方式运行。
  • Java:JUnit

    千次阅读 2018-10-09 13:07:48
    软件测试 软件测试是软件开发过程中不可缺少的一部分,对于发现软件缺陷、保证软件产品质量具有不可替代的作用。   按所属阶段和被测对象软件测试分为:单元测试、集成测试、系统测试和验收测试 ...
  • JUnit简介

    2019-03-14 15:56:35
    什么是JUnitJUnit是用于编写和运行可重复的自动化测试开源测试项目框架,这样可以保证我们的代码按与其工作。JUnit可广泛用于工业和作为支架(从命令行)或IDE(如IDE)内单独的java程序。 Junit提供: 断言...
  • Spring Boot---(11)SpringBoot使用Junit单元测试

    万次阅读 多人点赞 2020-04-18 13:57:49
    摘要:本文详细的记录了SpringBoot如何结合Junit写测试用例,如何执行,打包执行,忽略执行等操作,SpringBoot内置了Junit测试组件,使用很方便,不用再单独引入其他测试组件。 演示环境: SpringBoot + mybatis...
  • junit

    千次阅读 2005-11-23 20:09:00
    v 运行JUnitØ 下载junit.zip,解压缩目录如: D:/tools/develope/junit>Ø执行命令 java-cp junit.jar;. junit.textui.TestRunner junit.samples.AllTests或 java-cp junit.jar;. j
  • Spring Boot Junit单元测试

    万次阅读 多人点赞 2016-02-26 23:03:44
    Junit这种老技术,现在又拿出来说,不为别的,某种程度上来说,更是为了要说明它在项目中的重要性。 凭本人的感觉和经验来说,在项目中完全按标准都写Junit用例覆盖大部分业务代码的,应该不会超过一半。刚好前段...
  • Spring Boot Junit 测试Controller

    万次阅读 2020-01-07 10:30:37
    Controller: package com.xiaolyuh.controller; import java.util.List; ...import org.springframework.beans.factory.annotation.Autowired;...import org.springframework.data.domain.Page;...import org.spring...
  • JUnit3 与 JUnit4 的区别

    千次阅读 2015-04-21 13:54:43
    本想总结下JUnit3和JUnit4的区别,方便自己的同时也方便他人,不想却违反了DRY原则,网上已经出现了很多的文章。 既然无须再重复造轮子,就在此推荐两篇个人认为不错的文章,地址如下: 360doc:...
  • springboot使用junit5/junit4

    千次阅读 2020-01-31 17:06:31
    JUnit 5 = JUnit Platform + JUnit Jupiter + JUnit Vintage 其中 JUnit平台,其主要作用是在JVM上启动测试框架。它定义了一个抽象的TestEngineAPI来定义运行在平台上的测试框架,同时还支持通过命令行、Gradle和...
  • junit的jar包

    2020-07-18 23:31:15
    Files contained in junit4-4.8.2.jar: LICENSE.txt META-INF/MANIFEST.MF junit.extensions.ActiveTestSuite.class junit.extensions.RepeatedTest.class junit.extensions.TestDecorator.class junit.extensions...
  • JUnit3升级到JUnit4

    千次阅读 2011-02-09 16:26:00
    我个人认为, JUnit4最大的特点是引入了Java5的注释Annotation。1. @Test 在JUnit3,所有的test case的方法名都要以"test"为前缀prefix; 在JUnit4,在test case的方法前加上@Test,就明白了。@Test publicvoid ...
  • 基于Junit3.8和Junit4.x的单元测试详解

    千次阅读 2015-04-26 02:24:02
    前言 好久没有写来CSDN写博客了,前段时间一直在加班赶项目,所以博客一直没有更新;现在空闲时间比较多,所以后面会长期更新博客。...Junit3.8与Junit4.x的使用还是有些区别的,所以分开来讲,但不管怎样,单元测
1 2 3 4 5 ... 20
收藏数 300,085
精华内容 120,034
关键字:

junit