单元测试的基本使用

一、环境配置

使用idea IDE 进行单元测试,首先需要安装JUnit 插件。

1.安装JUnit插件步骤

File-->settings-->Plguins-->Browse repositories-->输入JUnit-->选择JUnit Generator V2.0安装。

2.使用JUnit插件

在需要进行单元测试的类中,使用快捷键alt+insert,选择JUnit test,选择JUnit4。

二、单元测试

代码Demo:

  @Testpublic void testAdd() {assertEquals(2, new UserDao().add(1, 1));}

1>注意事项:

    1、测试方法上面必须使用@Test注解进行修饰。

    2、测试方法必须使用public void 进行修饰,不能带有任何参数。

    3、新建一个源代码目录用来存放测试代码。

    4、测试类的包应该与被测试类的包保持一致。

    5、测试单元中的每一个方法必须独立测试,每个测试方法之间不能有依赖。

    6、测试类使用Test做为类名的后缀(非必要)。

    7、测试方法使用test作为方法名的前缀(非必要)。

2>错误解析:

    1、Failure 一般是单元测试使用的断言方法判断失败引起,说明预期结果和程序运行结果不一致。

    2、error 是有代码异常引起的,他产生于测试代码本身中的Bug。

    3、测试用例是不是用来证明你是对的,而是用来证明你没有错。

3>测试流程:

代码Demo:    

    @BeforeClasspublic static void setUpBeforeClass() throws Exception {}@AfterClasspublic static void setUpAfterClass() throws Exception {}@Beforepublic void before() throws Exception {}@Afterpublic void after() throws Exception {}

      1、@BeforeClass所修饰的方法在所有方法加载前执行,而且他是静态的在类加载后就会执行该方法,

         在内存中只有一份实例,适合用来加载配置文件。

      2、@AfterClass所修饰的方法在所有方法执行完毕之后执行,通常用来进行资源清理,例如关闭数据库连接。

      3、@Before和@After在每个测试方法执行前都会执行一次。

4>常用注解

      1、@Test(excepted=XX.class) 在运行时忽略某个异常。

      2、@Test(timeout=毫秒) 允许程序运行的时间。

      3、@Ignore 所修饰的方法被测试器忽略。

      4、RunWith 可以修改测试运行器 org.junit.runner.Runner

5>测试套件

      测试套件是组织测试类一起运行的测试类。具体如下:

代码Demo:

@RunWith(Suite.class)
@Suite.SuiteClasses({UserTest1,UserTest2,UserTest3})
public class SuiteTest{}

  注意事项:

      1、作为测试套件的入口类,类中不能包含任何方法。

      2、更改测试运行器Suite.class。

      3、将需要运行的测试类放入Suite.SuiteClasses({})的数组中。

6>参数化设置

      需要测试的仅仅是测试数据,代码结构是不变的,只需要更改测试数据。

代码Demo:    

@RunWith(Parameterized.class)
public class parameterTest {int expected = 0;int input1 = 0;int input2 = 0;@Parameterspublic static Collection<Object[]> t() {return Arrays.asList(new Object[][]{{3,1,2},{5,2,3}});}public parameterTest(int expected,int input1,int input2) {this.expected = expected;this.input1 = input1;this.input2 = input2;}@Testpublic void testAdd() {assertEquals(expected, UserDao.add(input1,input2));}}

    具体步骤:

        1、更改默认的测试运行器为@RunWith(Parameterized.class)。

        2、声明变量来存放预期值和测试值。

        3、声明一个返回值为Collection的公共静态方法,并用@Parameters修饰。

        4、为测试类声明一个带有参数的公共构造函数,并在其中为他声明变量赋值。

以上为基于IntelliJ IDEA 进行的单元测试。

转载于:https://www.cnblogs.com/chenliyang/p/6553074.html

Java:IDEA下使用JUNIT相关推荐

  1. Android下的Junit测试

    Android SDK 1.5已经将JUnit包含进来了,用过一次,昨天晚上重新用的时候还出了一点问题,还是决定写一篇比较详细的文章,供大家和自己以后使用,写起来也挺方便的,Android下的Juni ...

  2. Android下使用JUnit

    Andorid下使用Junit 测试框架,是步入正规的Androdid开发的必经之路,在Junit 中可以得到组件,可以模拟发送事件,检测程序处理的正确性,下面就开始我们的教程: Java代码 工具: ...

  3. java打包没有src_maven 打包时,src/main/java目录下的xml等资源文件没有打包进去的问题...

    关于使用maven打包src/main/java中一些关于mybatis的xml都没有打包进去,导致war包启动不起来,在此记录一下,解决方法. 默认maven在src/main/java中只编译ja ...

  4. copy所有的java文件到硬盘_将d:\java目录下的所有.java文件复制到d:\jad目录下,并将原来文件的扩展名从.java改为.jad...

    listFiles方法接受一个FileFilter对象,这个FileFilter对象就是过虑的策略对象,不同的人提供不同的FileFilter实现,即提供了不同的过滤策略. //将d:\java目录下 ...

  5. 将d:\java目录下的所有.java文件复制到d:\jad 目录下,并将原来文件的扩展名从.java 改为.jad

    package com;import java.io.*; import java.util.ArrayList; import java.util.List; /* 编写一个程序,将d:\java目 ...

  6. 编写一个程序,将d:\java目录下的所有.java文件复制到d:\jad目录下,并将原来文件的扩展名从.java改为.jad

    package com.hbut.test; import java.io.File; import java.io.FileNotFoundException; import java.io.Fil ...

  7. sqlcipher java_纯java环境下sqlsqlcipher解密sqlite数据库文件

    由于工作需要,最近一周以来研究sqlite数据库文件的解密方法.最终采用sqlcipher工具进行解密.由于sqlcipher的实现大多是支持android的,修改为纯java平台下的代码有难度,因此 ...

  8. java ee 下版本_将旧版本从Java EE 5减少到7

    java ee 下版本 Java EE 5于2005年首次引入,而Java EE 7于2013年问世.这两个版本之间存在7年的差距,从技术角度来说,这就像一个世纪. 许多组织仍然对使用Java EE ...

  9. java 数字 下划线_为什么要在Java SE 7的数字中使用下划线-在数字文字中使用下划线...

    java 数字 下划线 JDK 1.7发行版引入了几个有用的功能,尽管其中大多数都是语法糖,但使用该功能可以大大提高可读性和代码质量. 这样的功能之一是在数字文字中引入下划线 . 从Java 7开始, ...

最新文章

  1. 共享变量类vb.net中的共享方法、共享变量、全局变量
  2. Identity和IdentityServer的区别及联系
  3. Hexo如何绑定个人域名
  4. python 界面开发框架_八款常用的 Python GUI 开发框架推荐
  5. java filter bme_节点红色,想截断BME280传感器的结果
  6. Verilog 实现四选一选择器
  7. origin调整纵坐标刻度值_Origin数据图坐标刻度值特殊标注的方法
  8. 智能人物画像综合分析系统 6.29
  9. Training data-efficient image transformers distillation through attention
  10. 三、OpenDaylight应用基础开发(ODL的Hello World)
  11. 什么是PaaS?平台即服务介绍
  12. 通俗解释NLP任务四种评价指标(BLEU,METOR,ROUGH,CIDEr)
  13. 网络兼容性是什么意思
  14. [JS] 省市区三级联动(行政区划代码更新至2015-9-30)
  15. M1芯片处理器mac能用的AI(llustrator CC 2021 直装版M1优化版)解决M1版MAC安装AI闪退问题 完美支持M1芯片处理器
  16. 段码屏配套的背光源怎么设计?
  17. 迅雷冻结3亿链克,停止国际版支持,这个区块链项目基本凉了
  18. 写毕业论文从哪里找资料?这3个论文网站必备!
  19. 面试之Spring的启动原理
  20. 二进制与十进制的相互转换(详解)

热门文章

  1. json格式校验并显示错误_使用postman做自动化接口校验
  2. ZT 类模板Stack的实现 by vector
  3. JAVA 成员访问权限修饰符
  4. 【dubbo】消费者Consumer搭建
  5. bootstrap API地址
  6. 360发布穿戴设备“儿童卫士”手环
  7. VC中使用ADO的方法
  8. [maven] springboot将jar包打包到指定目录
  9. Netcdf中多变量导出代码示例
  10. Navicat Premium 未保存和已执行SQL存储位置