IDEA中 执行Junit 单元测试 的相关问题。

IDEA配置JUnit进行单元测试的方法

  • 前提条件

    安装JDK,并配置好环境变量
    工程已解决JUnit依赖关系(pom.xml)【pom是Maven的配置文件,可以忽略这条】
    导包:File -> Project Struct… -> Libraies -> 点击绿色的加号 -> Java -> 找到 IDEA 安装路径下的 Lib 中的包 确定完就行了,点击OK就出去了。记住一定要把这两个包都导好。
    在这里插入图片描述

  • IDEA中JUnit配置
    IDEA自带一个JUnit插件,打开Settings窗口搜索junit,如图:
    在这里插入图片描述该插件保证了JUnit测试文件的顺利运行:
    在这里插入图片描述
    我的2018.6.1版本的idea可以 Ctrl + Shift + T 自动生成 “待测试类名test”类,默认自动生成在测试类所在包下面——但是自动生成的测试类较为简陋。若项目中已有该测试类,会给予提示,让我选择是新建test类还是打开已有的类。
    在这里插入图片描述
    如果需要自动生成更完备的自定义测试代码,需要安装JUnitGenerator V2.0插件:
    在这里插入图片描述安装完成后重启idea,在待测试的类中打开Generate (快捷键:Alt+Insert)便可生成jUnit test 这是这个插件提供的功能,可以自动生成一个比较完备的可自定义的测试类。
    在这里插入图片描述默认的测试类的OutPut位置是在自动创建的一个test项目,里面的java包当中。这样的话这个测试类便没法起到作用,而且自动生成的程序可能不是自己想要的,所以需要进行一些自定义的配置:
    在这里插入图片描述

可以看到,Output Path 中有几个属性,分别解释一下

${SOURCEPATH} 原类的路径,就是你自己写的类
${PACKAGE} 原类的包名,java包命名规范就是按照包名一级一级创建文件夹的嘛
${filename} 测试类的类名

所以 Output Path 就简单明了了

默认的是${SOURCEPATH}/…/…/test/java/${PACKAGE}/${FILENAME} 即项目路径下的test/java文件夹下。这样不行,要改成自己的。
我希望我的项目中有一个junit的包 专门存放测试类,便写成了${SOURCEPATH}/Junit/${PACKAGE}/${FILENAME}

然后再修改 Junit4 选项卡中包的申明,把默认的 test 前缀改成我想要的Junit;注释改为我的注释。其他的东西以此类推,日后有需要可以自行修改。

不要忘记修改包名和注释的相关信息。这里的包名要和前面output path相对应(package 后的位置要和java文件的保存位置一致。),不然程序会报错
在这里插入图片描述调出generate 点击JUnit Test-Junit4,便生成了我独特的测试类。这个测试类因为有上图的模板加以控制,并且可以自定义我的代码,展现得会比之前没按插件的时候更完备:
在这里插入图片描述在测试类里重写方法之后,点方法或者类名左边的测试按钮,便可进行单个方法或者整个测试类的测试。
在这里插入图片描述注解的意思:

  • @Test:测试该方法

    • @Test(expected=XXException.class) 表示测试结果是否等于该异常
    • @Test(timeout=xxx)表示测试是否在该时间内完成
  • @Ignore:该方法不测试

  • @Before:在测试方法运行前,运行该方法

    • 主要用于测试(方法)前的准备工作
      如实例化对象
  • @After:在测试方法运行后,运行该方法

    • 主要用于测试(方法)后的收尾工作
      如销毁对象
  • @BeforeClass:在 @Before注解方法之前运行

    • 该注解的方式必须是静态的(static),因为是在类初始化之前需要先加载该方法
    • 主要用于测试(类)前的准备工作
      如加载配置文件,建立数据库连接等
  • @AfterClass:在 @After注解方法之后运行

    • 该注解的方式必须是静态的(static),因为是在类初始化之前需要先加载该方法
    • 主要用于测试(类)后的准备工作
      如关闭数据库连接等
      ————————————————
      版权声明:本文为CSDN博主「aiunng」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
      原文链接:https://blog.csdn.net/aiunng/article/details/89046224

JUnit一个测试类中的测试方法的执行顺序:

Test类中的Test方法是随机的,但可以指定

——按设计,JUnit并不指定测试方法调用的执行顺序。到目前为止,测试方法只是简单地按照反射API返回的顺序被调用。然而,由于Java平台并没有指定特定的顺序,使用JVM顺序并不明智。实际上,JDK 7返回的几乎是随机顺序。当然,好的测试代码并不会假定任何的执行顺序, 但是也有些会。并且,在特定的平台上,一个可预见的失败要好于随机的失败。
——从4.1.1版本开始,JUnit默认会使用一个确定的,但不可预知的顺序(MethodSorters.DEFAULT)。可以通过给你的测试类添加注解@FixMethodOrder来改变这个执行顺序,可以在下面可选的MethodSorter中任意指定一个:
@FixMethodOrder(MethodSorters.JVM): 使用JVM返回的顺序,这个顺序可能每次执行都不一样
@FixMethodOrder(MethodSorters.NAME_ASCENDING): Sorts the test methods by method name, in lexicographic order.
通过方法名每个字母的词典顺序排序,下面是举例:

import org.junit.FixMethodOrder;
import org.junit.Test;
import org.junit.runners.MethodSorters;


    @FixMethodOrder(MethodSorters.NAME_ASCENDING)
    public class TestMethodOrder {
        @Test
        public void testA() {
            System.out.println("first");
        }
        @Test
        public void testB() {
            System.out.println("second");
        }
        @Test
        public void testC() {
            System.out.println("third");
        }
    }

以上代码将按照测试方法名称升序排列的顺序执行这些测试方法。
————————————————
版权声明:本文为CSDN博主「林雨心情」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/linyuxinqing/article/details/79639969

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值