转载:https://www.cnblogs.com/huaxingtianxia/p/5563111.html

前言

单元测试的基本使用

一、环境配置

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

1.安装JUnit插件步骤

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

2.使用JUnit插件

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

二、单元测试

代码Demo:

  @Test
public 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:    

    @BeforeClass
public static void setUpBeforeClass() throws Exception { }
@AfterClass
public static void setUpAfterClass() throws Exception { } @Before
public void before() throws Exception { } @After
public 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; @Parameters
public 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;
} @Test
public void testAdd() {
assertEquals(expected, UserDao.add(input1,input2));
} }

具体步骤:

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

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

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

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

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

IntelliJ IDEA使用JUnit单元测试的更多相关文章

  1. IntelliJ IDEA添加JUnit单元测试

    使用idea IDE 进行单元测试,首先需要安装JUnit 插件. 1.安装JUnit插件步骤 File-->settings-->Plguins-->Browse reposito ...

  2. JUnit单元测试--IntelliJ IDEA

    单元测试的基本使用 一.环境配置 使用idea IDE 进行单元测试,首先需要安装JUnit 插件. 1.安装JUnit插件步骤 File-->settings-->Plguins--&g ...

  3. IntelliJ:JUnit单元测试

    0.参考 在Intellij IDEA中添加JUnit单元测试 - 唐啊唐囧囧 - 博客园 1.引言 JUnit是Java中很出名的一个单元测试,关于JUnit的具体介绍,可以看之前写的编写JUnit ...

  4. 在Intellij IDEA中添加JUnit单元测试

    Intellij IDEA中添加JUnit单元测试 目录 Intellij IDEA中添加JUnit单元测试 下载jar包 在Intellij IDEA项目中添加jar包 下载插件并进行设置 创建存放 ...

  5. Junit 单元测试在 intelliJ IDEA 中的安装

    1.为什么使用Junit我们都知道,main 方法是一个程序的入口,通常来说,没有main方法,程序就无法运行.我们经常会写一些class文件(如下图所示),他们并没有自己的main方法.那么我们如何 ...

  6. junit单元测试不通过报documentationPluginsBootstrapper相关异常

    这是因为Spring整合springfox-swagger2后导致的,错误信息如下: -- ::, [main] [WARN] [org.springframework.context.support ...

  7. junit单元测试(keeps the bar green to keeps the code clean)

    error是程序错误,failure是测试错误. junit概要: JUnit是由 Erich Gamma (设计模式的创始人)和 Kent Beck (敏捷开发的创始人之一)编写的一个回归测试框架( ...

  8. spring && Cobertura && maven &&junit 单元测试以及测试覆盖率

    1. 目的:       junit 单元测试,Cobertura   测试覆盖率报告       项目目录结构          2. maven 配置     <project xmlns= ...

  9. 关于intellij IDEA 上junit的用法

    话说,最近正在看视频学java.里面有个叫做junit的东西很有用.但是实话说我摆弄了半天都没弄明白. 今天呢通过一些资料,终于弄清楚了junit的大致用法,这里写出来,用以分享和备忘. 首先,环境和 ...

随机推荐

  1. 【Rocketmq】通过 docker 快速搭建 rocketmq 环境

    1. 安装 Namesrv 拉取镜像 docker pull rocketmqinc/rocketmq:4.4.0` 启动容器 docker run -d -p 9876:9876 -v {RmHom ...

  2. apache ignite系列(一): 简介

    apache-ignite简介(一) 1,简介 ​ ignite是分布式内存网格的一种实现,其基于java平台,具有可持久化,分布式事务,分布式计算等特点,此外还支持丰富的键值存储以及SQL语法(基于 ...

  3. sql server之SQL SELECT INTO 语句

    SELECT INTO 语句可用于创建表的备份复件. SELECT INTO 语句 SELECT INTO 语句从一个表中选取数据,然后把数据插入另一个表中. SELECT INTO 语句常用于创建表 ...

  4. 即时聊天APP(二) - MainActivity

    主活动包含三个Fragment,分别是会话.联系人和设置,初始布局隐藏所有碎片,然后把应该显示的显示出来: //隐藏所有Fragment private void hideAll(){ Fragmen ...

  5. 360大牛 全面解读 PHP面试

    360大牛全面解读PHP面试 第1章 课程介绍 让大家了解基本面试流程和面试的核心要求以及意义是什么并理解PHP面试考点主要以基础为核心,说明PHP面试考察范围. 第2章 PHP基础知识考察点 本章主 ...

  6. MySQL 8.0主从(Master-Slave)配置

    版权声明:转载请注明出处,谢谢配合. https://blog.csdn.net/zyhlwzy/article/details/80569422 MySQL 主从复制的方式有多种,本文主要演示基于基 ...

  7. python里的while循环和if循环

    一.循环的概念 循环是程序设计语言中反复执行某些代码的一种计算机处理过程,常见的有按照次数循环和按条件循环. 二.循环的基本格式 (while循环的基本格式) a=1#定义一个数 while a==1 ...

  8. linux切换jdk

    一.安装openjdk yum search openjdk yum install java-1.8.0-openjdk-devel-debug.x86_64 二.查询java版本 alternat ...

  9. Mysql高手系列 - 第12篇:子查询详解

    这是Mysql系列第12篇. 环境:mysql5.7.25,cmd命令中进行演示. 本章节非常重要. 子查询 出现在select语句中的select语句,称为子查询或内查询. 外部的select查询语 ...

  10. Vue学习之vue中的v-if,v-show,v-for

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...