IntelliJ IDEA使用JUnit单元测试
转载: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单元测试的更多相关文章
- IntelliJ IDEA添加JUnit单元测试
使用idea IDE 进行单元测试,首先需要安装JUnit 插件. 1.安装JUnit插件步骤 File-->settings-->Plguins-->Browse reposito ...
- JUnit单元测试--IntelliJ IDEA
单元测试的基本使用 一.环境配置 使用idea IDE 进行单元测试,首先需要安装JUnit 插件. 1.安装JUnit插件步骤 File-->settings-->Plguins--&g ...
- IntelliJ:JUnit单元测试
0.参考 在Intellij IDEA中添加JUnit单元测试 - 唐啊唐囧囧 - 博客园 1.引言 JUnit是Java中很出名的一个单元测试,关于JUnit的具体介绍,可以看之前写的编写JUnit ...
- 在Intellij IDEA中添加JUnit单元测试
Intellij IDEA中添加JUnit单元测试 目录 Intellij IDEA中添加JUnit单元测试 下载jar包 在Intellij IDEA项目中添加jar包 下载插件并进行设置 创建存放 ...
- Junit 单元测试在 intelliJ IDEA 中的安装
1.为什么使用Junit我们都知道,main 方法是一个程序的入口,通常来说,没有main方法,程序就无法运行.我们经常会写一些class文件(如下图所示),他们并没有自己的main方法.那么我们如何 ...
- junit单元测试不通过报documentationPluginsBootstrapper相关异常
这是因为Spring整合springfox-swagger2后导致的,错误信息如下: -- ::, [main] [WARN] [org.springframework.context.support ...
- junit单元测试(keeps the bar green to keeps the code clean)
error是程序错误,failure是测试错误. junit概要: JUnit是由 Erich Gamma (设计模式的创始人)和 Kent Beck (敏捷开发的创始人之一)编写的一个回归测试框架( ...
- spring && Cobertura && maven &&junit 单元测试以及测试覆盖率
1. 目的: junit 单元测试,Cobertura 测试覆盖率报告 项目目录结构 2. maven 配置 <project xmlns= ...
- 关于intellij IDEA 上junit的用法
话说,最近正在看视频学java.里面有个叫做junit的东西很有用.但是实话说我摆弄了半天都没弄明白. 今天呢通过一些资料,终于弄清楚了junit的大致用法,这里写出来,用以分享和备忘. 首先,环境和 ...
随机推荐
- C++ 深入浅出工厂模式(初识篇)
初识工厂模式 我们先看工厂模式的介绍 这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式. 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创 ...
- 你以为反射真的无所不能?至少JDK8以后很强大
目录 反射操作方法 Spring的方法的优点 反射如何实现Spring的方法 Java字节码 高级反射注意点 javac的彩蛋 续点 每日一笑 上期答案 # 加入战队 微信公众号 之前我们已经介绍了J ...
- ASN1编码中的OID
0.9.2342.19200300.100.1.25, domainComponent1.2.36.68980861.1.1.10, Signet pilot1.2.36.68980861.1.1.1 ...
- kafka入门配置
问题导读: 1.zookeeper在kafka的作用是什么? 2.kafka中几乎不允许对消息进行“随机读写”的原因是什么? 3.kafka集群consumer和producer状态信息是如何保存的? ...
- thymeleaf+layui加载页面渲染时TemplateProcessingException: Could not parse as expression
Caused by: org.attoparser.ParseException: Could not parse as expression: " {type: 'numbers'}, { ...
- 判断是手机端还是PC短访问
第一种:判断是手机访问还是PC访问 <script> function browserRedirect() { var sUserAgent = navigator.userAgent.t ...
- composer 依赖的require安装与remove删除命令
安装:require composer require phpmailer/phpmailer 删除:remove composer remove phpmailer/phpmailer
- CentOS7 自定义登录前后欢迎信息
博客地址:http://www.moonxy.com 一.摘要 本人当前使用的是阿里云 ECS 服务器,操作系统为 linux,发行版为 CentOS 7.4.1708.系统默认都已经提供了欢迎信息, ...
- python实例化时带括号与不带
1.首先这个标题题目不是很准确,但一时又想不到更好的标题所以只好用这个标题,下面我们来看看为什么. 首先我们要明白python中类的实例化是要加上括号的,那么不加括号是什么意思你,看代码 class ...
- C++基础之迭代器
迭代器的分类 插入迭代器(insert iterator):绑定一个容器上后可以向容器中插入元素: 流迭代器(stream iterator):绑定在输入输出流中,可以遍历关联的流: 反向迭代器(re ...