junit入门实例
1 junit测试用例代码
package junitTest;
import static org.junit.Assert.*;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Ignore;
import org.junit.Test;
/**
* @ClassName TestCase
* @Description junit测试用例演示
* @date 2014年9月11日 上午9:57:45
*
*/
public class TestCase {
// @Test
// public void test() {
// fail("Not yet implemented");
// }
/**
*
* @Title setUpBeforeClass
* @Description 针对所有测试,只执行一次,在该class执行前执行,且必须为static void
* @param
* @return
* @throws
*/
@BeforeClass
public static void setUpBeforeClass() throws Exception {
System.out.println("in BeforeClass================");
}
/**
*
* @Title tearDownAfterClass
* @Description 针对所有测试,只执行一次,在该class执行完后执行,且必须为static void
* @param
* @return
* @throws
*/
@AfterClass
public static void tearDownAfterClass() throws Exception {
System.out.println("in AfterClass=================");
}
/**
*
* @Title before
* @Description 初始化测试方法,每个测试方法都需要调用一次
* @param
* @return
* @throws
*/
@Before
public void before() {
System.out.println("in Before");
}
/**
*
* @Title after
* @Description 测试方法执行完后释放资源,每个测试方法都需要调用一次
* @param
* @return
* @throws
*/
@After
public void after() {
System.out.println("in After");
}
@Test(timeout = 10000)
public void testadd() {
JDemo a = new JDemo();
assertEquals(6, a.add(3, 3));
System.out.println("in Test ----Add");
}
@Test
public void testdivision() {
JDemo a = new JDemo();
assertEquals(3, a.division(6, 2));
System.out.println("in Test ----Division");
}
@Ignore
@Test
public void test_ignore() {
JDemo a = new JDemo();
assertEquals(6, a.add(1, 5));
System.out.println("in test_ignore");
}
@Test
public void test_fail() {
fail();
}
}
/**
*
* @ClassName JDemo
* @Description 测试类
* @date 2014年9月11日 上午10:15:15
*
*/
class JDemo extends Thread {
int result;
public int add(int a, int b) {
try {
sleep(1000);
result = a + b;
} catch (InterruptedException e) {
System.out.println("add error");
}
return result;
}
public int division(int a, int b) {
return result = a / b;
}
}
2 java执行结果
in BeforeClass================ in Before in Test ----Division in After in Before in After in Before in Test ----Add in After in AfterClass=================
3 junit执行结果
4 执行顺序
一个测试类单元测试的执行顺序为:
@BeforeClass –> @Before –> @Test –> @After –> @AfterClass
每一个测试方法的调用顺序为:
@Before –> @Test –> @After
5 断言核心方法
assertArrayEquals(expecteds, actuals) |
查看两个数组是否相等。 |
---|---|
assertEquals(expected, actual) |
查看两个对象是否相等。类似于字符串比较使用的equals()方法 |
assertNotEquals(first, second) |
查看两个对象是否不相等。 |
assertNull(object) |
查看对象是否为空。 |
assertNotNull(object) |
查看对象是否不为空。 |
assertSame(expected, actual) |
查看两个对象的引用是否相等。类似于使用“==”比较两个对象 |
assertNotSame(unexpected, actual) |
查看两个对象的引用是否不相等。类似于使用“!=”比较两个对象 |
assertTrue(condition) |
查看运行结果是否为true。 |
assertFalse(condition) |
查看运行结果是否为false。 |
assertThat(actual, matcher) |
查看实际值是否满足指定的条件 |
fail() |
让测试失败 |
6 junit方法声明
@Before |
初始化方法 |
---|---|
@After |
释放资源 |
@Test |
测试方法,在这里可以测试期望异常和超时时间 |
@Ignore |
忽略的测试方法 |
@BeforeClass |
针对所有测试,只执行一次,且必须为static void |
@AfterClass |
针对所有测试,只执行一次,且必须为static void |
@RunWith |
指定测试类使用某个运行器 |
@Parameters |
指定测试类的测试数据集合 |
@Rule |
允许灵活添加或重新定义测试类中的每个测试方法的行为 |
@FixMethodOrder |
指定测试方法的执行顺序 |
参考文件:http://blog.csdn.net/wangpeng047/article/details/9628449
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 设计模式-组装电脑入门简单工厂
- 搭建属于自己的FRP内网穿透
- 线上千万级大表排序该如何优化?
- LeetCode-7.整数反转 取模反转法与字符串法
- Spring Bean依赖
- Spring事务是如何应用到你的业务场景中的?
- MySQL8.0大表秒加字段,是真的吗?
- 大数据简介,技术体系分类整理
- 图像处理笔记(5)---- OpenCV 用滑动条做调色板
- 牛X | 一款比传统数据库快100-1000倍的数据库,认识一下
- SpringBoot统一参数校验
- SpringBoot多邮件源发送邮件
- 一个基础的SpringBoot项目该包含哪些
- leetcode树之平衡二叉树
- 3分钟短文:说说Laravel页面会话之间的数据保存Session用法