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

    2019-09-23 15:40:45
    junit5 API文档 https://junit.org/junit4/javadoc/latest/ 基础使用 junit运行流程 junit注解 junit测试套件 junit参数化

    junit5 API文档

     

     

    https://junit.org/junit4/javadoc/latest/

    基础使用

    junit运行流程

    junit注解

    junit测试套件

     

    junit参数化

    展开全文
  • JUnit

    2011-10-11 18:39:48
    JUnit 简介 JUnit是由 Erich Gamma 和 Kent Beck 编写的一个回归测试框架(regression testing framework)。Junit测试是程序员测试,即所谓白盒测试,因为程序员知道被测试的软件如何(How)完成功能和完成什么样...
  • junit junit junit

    2017-11-09 13:09:05
    junit-4.10.jar,测试jar,https://sourceforge.net/projects/junit/?source=typ_redirect <groupId>junit <artifactId>junit <version>4.12 <scope>test </dependency>
  • JUnit JUnit

    2008-03-04 08:40:17
    JUnit JUnitJUnit JUnit
  • Spring Boot---(11)SpringBoot使用Junit单元测试

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

    摘要:本文详细的记录了SpringBoot如何结合Junit写测试用例,如何执行,打包执行,忽略执行等操作,SpringBoot内置了Junit测试组件,使用很方便,不用再单独引入其他测试组件。

     

    演示环境

    SpringBoot + mybatis

    开发工具:IntelliJ IDEA

     

    1.pom.xml

     

    一般使用idea新建一个SpringBoot web项目时,一般都会自动引入此依赖,如果没有,请手动引入。

     

    		<dependency>
    			<groupId>org.springframework.boot</groupId>
    			<artifactId>spring-boot-starter-test</artifactId>
    			<scope>test</scope>
    		</dependency>

     

    2.测试类基类

     

    新建的项目,一般会有test包和test类,结构如下:

    如果没有,我们自己创建一个,由于一个项目中我们会写很多很多测试类,而测试类上面是需要以下几个注解的,每建一个类都去补注解,太麻烦,我们就在这个类中加上注解,其他测试类直接继承这个类就好了:

     

    package com.alibaba;
    
    import org.junit.After;
    import org.junit.Before;
    import org.junit.runner.RunWith;
    import org.springframework.boot.test.context.SpringBootTest;
    import org.springframework.test.context.junit4.SpringRunner;
    import org.springframework.test.context.web.WebAppConfiguration;
    
    @RunWith(SpringRunner.class)
    @SpringBootTest
    //由于是Web项目,Junit需要模拟ServletContext,因此我们需要给我们的测试类加上@WebAppConfiguration。
    @WebAppConfiguration
    public class TmallApplicationTests {
    
        @Before
        public void init() {
            System.out.println("开始测试-----------------");
        }
    
        @After
        public void after() {
            System.out.println("测试结束-----------------");
        }
    }
    

     

    3.controller,service,dao等,省略,就是普通方法,普通接口


    4.测试类

     

    我这里建一个测试类,继承基类,然后测试我service中的两个方法

     

    package com.alibaba;
    
    import com.alibaba.service.EntFileService;
    import org.junit.Assert;
    import org.junit.Test;
    import org.springframework.beans.factory.annotation.Autowired;
    
    /**
     * Created by lightClouds917
     * Date 2018/2/2
     * Description:测试类
     */
    public class EntFileTest extends TmallApplicationTests {
    
    
        @Autowired
        private EntFileService entFileService;
        //@Ignore("not ready yet")
        @Test
        public void testGetEntFileById(){
            Assert.assertSame("企业数量有误",500,entFileService.getCount());
        }
    
        @Test
        public void testGetEntFileList(){
            Assert.assertSame("企业数量不为10",10,entFileService.getEntFileList());
        }
    }
    

    如上,直接@Autowired引入你想测试的类就好,然后继承基类,测试方法上面要加@Test注解。

    然后,第一个测试方法:我想测试一下企业数量是不是600,参数意义:

    第一个参数:如果测试不通过,会抛出此消息,此参数可不要;

    第二个参数:我预期的值,我这里希望他查出来的结果是600;

    第三个参数:是实际的结果,就是我们调用方法返回的结果;

    我们可以看一下Assert类的源码:
     

        /**
         * Asserts that two objects refer to the same object. If they are not, an
         * {@link AssertionError} is thrown with the given message.
         *
         * @param message the identifying message for the {@link AssertionError} (<code>null</code>
         * okay)
         * @param expected the expected object
         * @param actual the object to compare to <code>expected</code>
         */
        static public void assertSame(String message, Object expected, Object actual) {
            if (expected == actual) {
                return;
            }
            failNotSame(message, expected, actual);
        }
    
        /**
         * Asserts that two objects refer to the same object. If they are not the
         * same, an {@link AssertionError} without a message is thrown.
         *
         * @param expected the expected object
         * @param actual the object to compare to <code>expected</code>
         */
        static public void assertSame(Object expected, Object actual) {
            assertSame(null, expected, actual);
        }

     

    5.运行测试用例

     

    运行有两种方法:

    1.选中方法,右键,然后run 。。。;

    2.点击方法前的小标;

    具体操作如下截图:

    现在看运行结果,如下图:

    区块一:这里是测试用例的执行结果,由于未获得预期结果,打印出了我们提前设置的错误信息。

    区块二:这是测试用例的覆盖率,类的覆盖,方法的覆盖,行数的覆盖,非常详细。

    区块三:此区块是预期结果和实际结果的详细对比,点击后才会显示,如图点击位置。

    关于Assert中,还有很多断言方法,方法名字很规范,看名字就知道怎么用了,这里不再过多说明。

     

    6.打包测试

     

    项目开发完后,我们写了100个测试用例类,我不能每个类都点击进去,然后慢慢执行,SpringBoot提供了打包测试的方式:我们用一个类,把所有的测试类整理进去,然后直接运行这个类,所有的测试类都会执行。

    我这里建了两个测试类,分别是EntFileTest,EntFileTest2,现在我打包进TestSuits,让他们一次运行:

     

    @Suite.SuiteClasses({EntFileTest.class,EntFileTest2.class})

    打包完整代码:

     

    package com.alibaba;
    
    import org.junit.runner.RunWith;
    import org.junit.runners.Suite;
    
    /**
     * Created by lightClouds917
     * Date 2018/2/2
     * Description:打包测试
     */
    //@Ignore("not ready yet")
    @RunWith(Suite.class)
    @Suite.SuiteClasses({EntFileTest.class,EntFileTest2.class})
    public class TestSuits {
    
        //不用写代码,只需要注解即可
    }
    

     

     

    7.忽略方法

     

    当我一个测试类写了10个测试方法时,其中有1个我暂时不想测,想跳过,但是其他9个我想一次运行,怎么办?这里有一个忽略注解,写在方法上,可以忽略这个测试方法,写在类上,可以忽略这个类。

     

    package com.alibaba;
    
    import com.alibaba.service.EntFileService;
    import org.junit.Assert;
    import org.junit.Ignore;
    import org.junit.Test;
    import org.springframework.beans.factory.annotation.Autowired;
    
    /**
     * Created by lightClouds917
     * Date 2018/2/2
     * Description:测试类
     */
    public class EntFileTest extends TmallApplicationTests {
    
    
        @Autowired
        private EntFileService entFileService;
    
        @Ignore("not ready yet")
        @Test
        public void testGetEntFileById(){
            Assert.assertSame("企业数量有误",600,entFileService.getCount());
        }
    
        @Test
        public void testGetEntFileList(){
            Assert.assertSame("企业数量不为10",10,entFileService.getEntFileList());
        }
    }
    

    此时,运行这个测试类,testGetEntFileById()方法就会忽略执行。

    ----------------------------猝不及防,我要打广告了----------------------------

    欢迎关注公众号java4all,或添加IT云清个人号,一起聊技术聊成长。

       

                java4all 公众号                       IT云清 个人号 

    ----------------------------猝不及防,我要打广告了----------------------------

    展开全文
  • junit测试 test txt file
  • Junit4.8.2(Junit4.7)

    2020-11-21 18:59:57
    Junit4.8.2(Junit4.7)里面有两个版本的Junit根据个人爱好使用,Junit4.11以上需要单独下载hamcrest-core-1.3.jar,因此推荐使用4.8.2版
  • JUnit4
  • JUnit 5 = JUnit Platform + JUnit Jupiter + JUnit Vintage,包含依赖包:junit-jupiter-5.5.1.jar,junit-jupiter-engine-5.5.1.jar,junit-jupiter-params-5.5.1.jar,junit-platform-launcher-1.5.1.jar,junit-...
  • IDEA中使用JUnit4(单元测试框架)超详细!

    万次阅读 多人点赞 2019-08-20 17:25:23
    IDEA中使用JUnit4教程 超详细!(单元测试框架) 自动化测试的必经之路--Selenium

    IDEA中使用JUnit4教程 超详细!(单元测试框架)

    导语:自动化测试的必经之路–Selenium

    作者变优秀的小白

    GithubYX-XiaoBai

    QQ交流群(new): 811792998

    爱好Americano More Ice !

    话不多说,实战为主!

    注:如中途遇到不懂的地方,直接评论留言看到会马上答疑!

    首先我们要认识什么是JUnit

    JUnit单元测试框架由Erich Gamma和Kent Beck编写的一个回归测试框架(Regresion Testing Framework),主要用于Java语言程序的单元测试,目前使用的主流版本是JUnit以上版本。
    此测试框架可用于执行WebDriver的自动化测试框架,话不多说,实战为主。

    1.安装IDEA,配置好IDEA的环境(关于IDEA的配置就不在此说明了,度娘多详细的教程都有)
    2.打开IDEA,先新建一个Java项目,点击 文件File-新建New-项目Project

    3.然后下一步,下一步,我这里项目名使用 Junit4Proj,点击完成
    在这里插入图片描述
    4.完成项目的创建后,点击 文件File-设置Settings-Plugins 在搜索栏搜索 JUnit,此时出现了几个Plugins,选择 JUnit,有两种方法安装插件(我都框起来了)。Install JetBrains plugin…Browser repositories两种方法,前者直接点击下载就好,如图
    在这里插入图片描述
    也可用后者方法,相对麻烦了一点(第三种方法更麻烦就不列举了),如图
    在这里插入图片描述
    在这里插入图片描述
    5.当你下载好Junit4 插件后,打开 文件File-设置Settings,如图注明修改配置
    在这里插入图片描述
    JUnit4 模块里找到此代码 将test去掉
    在这里插入图片描述
    6.以下是我编写的被测试类Calculator,以它为例。操作步骤为:IDEA新建一个java工程–自定义命名新建package–此package下新建Calculator类
    在这里插入图片描述
    代码如下

    public class Calculator {
        public int result=0;
        public int add(int operand1,int operand2){
            result=operand1+operand2;   //将两个传入参数进行相加操作
            return result;
        }
        public  int subtract(int operand1,int operand2){
            result=operand1-operand2;   //将两个传入参数进行相减操作
            return  result;
        }
        public int multipe(int operand1,int operand2){
            result=operand1*operand2;   //将两个传入参数进行相乘操作
            for(;;){                    //死循环
            }
        }
        public int divide(int operand1,int operand2){
            result=operand1/0;      //除0操作
            return result;
        }
        public int getResult(){
            return this.result;     //返回计算结果
        }
    
    }
    
    

    7.创建Junit4的测试代码,有两种方法(超级简单方便),第一种直接点击被测试类Calculator 使用 Ctrl+Shift+T
    在这里插入图片描述
    第二种方法 鼠标右键点击类名 使用 goto-Test(本人使用IDEA下错成汉化版表示难受)即可实现
    在这里插入图片描述
    8.创建测试,根据自身需要来勾选
    在这里插入图片描述
    我把测试类代码直接给出来,可根据需要自行修改

    import org.junit.*;
    
    import static org.junit.Assert.*;
    
    public class CalculatorTest {
    
        private static Calculator cal=new Calculator();
    
        @BeforeClass
        public static void setUpBeforeClass() throws Exception{
            System.out.println("@BeforeClass");
        }
        @AfterClass
        public static void tearDownAfterClass() throws Exception{
            System.out.println("@AfterClass");
        }
    
        @Before
        public void setUp() throws Exception {
            System.out.println("测试开始");
        }
    
        @After
        public void tearDown() throws Exception {
            System.out.println("测试结束");
        }
    
        @Test
        public void testAdd() {
            cal.add(2,2);
            assertEquals(4,cal.getResult());
            //fail("Not yet implemented");
        }
    
        @Test
        public void testSubtract() {
            cal.subtract(4,2);
            assertEquals(2,cal.getResult());
            //fail("Not yet implemented");
        }
    
        @Ignore
        public void testMultiply() {
            fail("Not yet implemented");
        }
    
        @Test(timeout = 2000)
        public void testDivide() {
            for(;;);
        }
    
        @Test(expected = ArithmeticException.class)
        public void testDivideByZero(){
            cal.divide(4,0);
        }
    
    
    }
    

    9.创建完成,有可能会报错,如图所描述的可能会报错
    在这里插入图片描述
    解决方法:找到项目的 pom.xml文件,使用maven直接导入项目
    在这里插入图片描述
    以下是本测试类需要用到的dependency,可自行复制

        <dependencies>
            <!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
            <dependency>
                <groupId>org.seleniumhq.selenium</groupId>
                <artifactId>selenium-java</artifactId>
                <version>3.14.0</version>
            </dependency>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.12</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.jboss.shrinkwrap</groupId>
                <artifactId>shrinkwrap-api</artifactId>
                <version>1.2.6</version>
            </dependency>
            <dependency>
                <groupId>org.jboss.arquillian.junit</groupId>
                <artifactId>arquillian-junit-container</artifactId>
                <version>1.4.1.Final</version>
                <scope>test</scope>
            </dependency>
    
        </dependencies>
    

    10.所有工作已经做完,此时点击运行就可以啦!运行结果如下:
    在这里插入图片描述

    此时一个简单的Junit注解使用就算成功了!

    最后附上一些使用到的概念:
    一个测试类中只能声明此注解一次,此注解对应的方法只能被执行一次
    @BeforeClass 使用此注解的方法在测试类被调用之前执行
    @AfterClass 使用此注解的方法在测试类被调用结束退出之前执行
    一个类中有多少个@Test注解方法,以下对应注解方法就被调用多少次
    @Before 在每个@Test调用之前执行
    @After 在每个@Test调用之后执行
    @Test 使用此注解的方法为一个单元测试用例,一个测试类中可多次声明,每个注解为@Test只执行一次
    @Ignore 暂不执行的测试用例,会被JUnit4忽略执行

    总结: 大家如果有什么疑问或者建议的地方,可直接留言评论!本人会一一回复!!

    展开全文
  • junit讲解junit讲解junit讲解junit讲解junit讲解junit讲解junit讲解junit讲解junit讲解junit讲解junit讲解junit讲解junit讲解junit讲解junit讲解
  • JunitJUnitGenerator

    2018-04-21 19:02:22
    Intellij idea中用于单元测试的junit.jar 和 JUnitGenerator.jar。如何在Intellij中使用单元测试,请看https://blog.csdn.net/gengbaolong/article/details/80032099。
  • JUnit学习资料
  • junit源码将JUnit3代码转换为JUnit4 脚本不是完美的,但是在处理最常见的问题上还有很长的路要走。 不处理呼叫 junit.framework.TestSuite.addTestSuite(clazz); 对于这些,您需要使用@RunWith(Suite.class) 。
  • JUnit 4 vs JUnit 5

    千次阅读 2019-10-04 09:56:26
    JUnit5中没有声明任何属性,JUnit Jupiter中的测试扩展是基于它们自己的专用注解来完成的。这样的方法会被继承,除非它们被覆盖。 JUnit 4中基于属性来设置,timeout和exception两个属性 类前置方法 功能描述 ...

    注解说明

    单元测试方法

    功能描述JUnit 4JUnit 5
    定义方法测试@Test@Test

    区别:
    JUnit5中没有声明任何属性,JUnit Jupiter中的测试扩展是基于它们自己的专用注解来完成的。这样的方法会被继承,除非它们被覆盖。
    JUnit 4中基于属性来设置,timeout和exception两个属性

    类前置方法

    功能描述JUnit 4JUnit 5
    在类所有方法执行之前调用@BeforeClass@BeforeAll

    说明:
    单元测试方法包括: @Test/@RepeatedTest
    /@ParameteredTest/@TestFactory修饰的方法

    类后置方法

    功能描述JUnit 4JUnit 5
    在类所有方法执行之后调用@AfterClass@AfterAll

    说明:
    单元测试方法包括: @Test/@RepeatedTest
    /@ParameteredTest/@TestFactory修饰的方法

    方法级的前置方法

    功能描述JUnit 4JUnit 5
    在每一个单元测试方法之前执行@Before@BeforeEach

    说明:
    单元测试方法包括:@Test、@RepeatedTest、@ParameterizedTest或者@TestFactory

    方法级的后置方法

    功能描述JUnit 4JUnit 5
    在每一个单元测试方法之后@After@AfterEach

    禁止执行

    功能描述JUnit 4JUnit 5
    禁止执行测试方法@Ignore@Disabled

    声明过滤测试

    功能描述JUnit 4JUnit 5
    过滤测试@Category@Tag

    参数化测试

    功能描述JUnit 4JUnit 5
    参数化测试@Parameters@ParameterizedTest

    运行测试类

    功能描述JUnit 4JUnit 5
    执行测试类@RunWith@ExtendWith

    监控TestCase和外部资源

    功能能描述JUnit 4JUnit 5
    监控/验证@Rule@ExtendWith

    静态变量

    功能描述JUnit 4JUnit 5
    静态变量@ClassRule@ExtendWith
    展开全文
  • JUNIT介绍JUNIT介绍

    2011-07-14 15:52:22
    JUNIT介绍.JUNIT介绍.JUNIT介绍.JUNIT介绍.
  • Junit单元测试Junit单元测试Junit单元测试Junit单元测试
  • JUnit_EDE:JUnit练习-源码

    2021-05-19 06:25:03
    JUnit_EDE JUnit练习
  • JUnit的 基本的Junit测试
  • JUnit API JUnit API

    2009-07-31 17:12:02
    JUnit API JUnit API JUnit API JUnit API JUnit API
  • jUnit 4.12

    2018-05-20 15:51:19
    JUnit是一个Java语言的单元测试框架。即所谓白盒测试,因为程序员知道被测试的软件如何(How)完成功能和完成什么样(What)的功能。Junit是一套框架,继承TestCase类,就可以用Junit进行自动测试了。
  • 学习-junit4 JUnit 实践代码学习与 JUnit in Action 一书
  • junit-4.10.jar,junit集合

    2018-01-27 15:14:41
    junit-4.10.jar,junit集合,junit-4.10.jar,junit集合
  • Junit进行单元测试
  • junit4.1 junit4.1

    2008-12-31 10:38:20
    junit4.1junit4.1junit4.1junit4.1junit4.1
  • junit单元测试jar包

    2017-03-09 14:17:46
    junit
  • Junit单元测试Junit单元测试Junit单元测试Junit单元测试
  • 单元测试框架Junit—— JUnit3.8.1 以及使用JUnit测试的代码demo。
  • JUnit先锋 一个用于各种扩展(特别是Jupiter API)的大熔炉。 查看 ,特别。 先锋的使命 JUnit Pioneer为及其Jupiter API提供了扩展。 它不限于具有广泛应用的已验证思想,而是有目的地接受实验。 它的目的是将...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 376,881
精华内容 150,752
关键字:

junit