Java 的单元测试
有点需要注意,当 JUnit 主线程退出,子线程也会跟着退出,需要使用子线程的 join() 方法使主线程等待
Maven 依赖
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.7</version>
<scope>test</scope>
</dependency>
// src/main/java/club/seliote/App.java
package club.seliote;
public class App
{
public int add(int first, int second) {
return first + second;
}
public int exception() {
throw new NullPointerException();
}
}
// src/test/java/club/seliote/AppTest.java
package club.seliote;
import org.junit.*;
/**
* Unit test for simple App.
*/
public class AppTest
{
/**
* 用于保存 @Before 生成的数据
*/
private App app = null;
/**
* 每个测试方法执行前都需要重新构造对象
*/
public AppTest() {
super();
System.out.println("#Constructor");
}
/**
* static 方法,测试类中第一个执行
*/
@BeforeClass
public static void beforeClassTest() {
System.out.println("#BeforeClass");
}
/**
* 初始化一些每个 @Test 方法都会用到的数据
*/
@Before
public void beforeTest() {
this.app = new App();
System.out.println("#Before");
}
@Test
public void testAdd() {
System.out.println("#TestAdd");
Assert.assertEquals(6, this.app.add(3, 3));
if (8 != this.app.add(1, 7)) {
Assert.fail("Something error!");
}
}
/**
* 超时测试
*/
@Test(timeout = 100)
public void testTimeout() {
Math.pow(10, 100);
}
/**
* 异常测试
*/
@Test(expected = NullPointerException.class)
public void testIO() {
System.out.println("#TestException");
this.app.exception();
}
@After
public void afterTest() {
this.app = null;
System.out.println("#After");
}
@AfterClass
public static void afterClassTest() {
System.out.println("#AfterClass");
}
}
// output :
// #BeforeClass
// #Constructor
// #Before
// #After
// #Constructor
// #Before
// #TestAdd
// #After
// #Constructor
// #Before
// #TestException
// #After
// #AfterClass
Java 的单元测试的更多相关文章
- Java - Junit单元测试框架
简介 Junit : http://junit.org/ JUnit是一个开放源代码的Java语言单元测试框架,用于编写和运行可重复的测试. 多数Java的开发环境都已经集成了JUnit作为单元测试的 ...
- ABAP和Java的单元测试Unit Test
ABAP ABAP class单元测试的执行入口,CLASS_SETUP, 是硬编码在单元测试框架实现CL_AUNIT_TEST_CLASS里的. 待执行的单元测试方法通过CL_AUNIT_TEST_ ...
- Java学习——单元测试JUnit
Java学习——单元测试JUnit 摘要:本文主要介绍了什么是单元测试以及怎么进行单元测试. 部分内容来自以下博客: https://www.cnblogs.com/wxisme/p/4779193. ...
- java之单元测试
这篇主要简单讲下java的单元测试 目录结构如下: 如图,其中1是需要被测试的功能:2是测试模块:3是单元测试需要的引入包: 1. 功能模块1中 Calculator 的代码: package cn. ...
- TestNg JAVA 自动化单元测试框架Demo
TestNg TestNg 是java的一个自动化单元测试框架 参考:http://testng.org/doc/index.html 环境准备 既然是java 的自动化单元测试框架,就必须要有jav ...
- Java程序单元测试工具对比——Parasoft Jtest与Junit
Web应用程序开发中,面向对象的Java语言占了不少的比重.对于Java应用程序的测试方法或方式多种多样,比较典型的是程序员自己来完成程序测试中的一个部分——单元测试. 之前,慧都资讯提到单元测试是程 ...
- Java之单元测试工具(Junit)
Junit是Java单元测试框架,一般Eclipse里面会集成这个Junit4测试工具 既然是测试工具,虽然开发用得比较多,但作为测试人员也需要具备会Junit测试的思想,况且技多不压身 这里简单介绍 ...
- 【转】Java JUnit 单元测试小结
原文链接:https://segmentfault.com/a/1190000006731125 测试类型 单元测试(Unit test) 单元测试关注单一的类. 它们存在的目的是检查这个类中的代码是 ...
- Java新一代单元测试框架JUnit5速览
为什么学JUnit5 Java技术栈的单元测试框架有两个:JUnit和TestNG,有种说法是TestNG比JUnit更强大,学TestNG就够了,但是当我打开GitHub看到star的时候,犹豫了: ...
- Java Junit单元测试
使用Junit进行单元测试,首先引入Junit的jar,配置如下. @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(&quo ...
随机推荐
- XCode 如何真机运行别人的demo项目
iOS应用安装到真机需要证书和mobileprovision 文件,拿到别人的项目 是没有这些的 ,也就运行不起来. 要想运行起来, 需要选中项目, target - > 修改 bundlei ...
- maven struts2工程StrutsPrepareAndExecuteFilter cannot be cast to javax.servlet.Filter
maven搭建struts2工程时报错 严重: Exception starting filter struts2java.lang.ClassCastException: org.apache.st ...
- struts 上传文件 Dynavalidatorform 实例
一.相关jar包 一个空struts工程的jar包: 另上传文件的两个jar包: 二.页面 1.上传页面upload.jsp <%@ page language="jav ...
- mongoDB基础知识(一)
mongoDB是一个基于分布式文件存储的数据库,介于关系型数据库和非关系型数据库之间,在非关系型数据库中功能最丰富, 最像关系型数据库.数据结构松散,类似于json的bson格式,可以存储比较复杂的数 ...
- IOS SQLite函数总结
SQL语句的种类 ● 数据定义语句(DDL:Data Definition Language) ● 包括create和drop等操作 ● 在数据库中创建新表或删除表(create table或 ...
- 字符串处理,Poj(2121)
题目链接:http://poj.org/problem?id=2121 差一点就WA哭了,主要是自己傻逼了. 思路: 遇到hundred,sum*100; 但是遇到thouthend,million, ...
- 【转】VMware虚拟机系统无法上网怎么办?
有很多用户通过安装VMware软件来创建虚拟机系统,其中就有部分用户在创建好虚拟机系统后遇到无法上网的问题,下面PC6苹果网小编就给大家带来VMware虚拟机系统下无法上网的解决办法: 1.在虚拟机右 ...
- openstack kilo python cinderclient
➜ ~ pythonPython 2.7.5 (default, Oct 30 2018, 23:45:53) [GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on ...
- 缓冲区溢出实战教程系列(二):dev c++编译汇编代码
小伙伴们对我上一篇文章的反应完全出乎了我的意料,感谢大家对我的支持和认可.接下来我会精心的把这一系列课程设计好,尽量详细的展示给大家.上篇文章我列举了一个缓冲区溢出的小例子,并提到了dev c++.o ...
- map和set的遍历
map: 1.通过获取Entry: Entry的iterator for(Map.Entry<Float,String> entry : map.entrySet()) { System ...