junit的简单用法
之前测试一个方法总要写一个main函数来调用,感觉既费事又有点low。今天来简单研究一下怎么使用junit来进行单元测试。
1. 依赖包
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
</dependency>
2. 开始测试吧
例子1,使用@Test注解:
选中方法名test1--》右键--》Run As--》JUnit Test,哈哈,不用main方法也执行成功啦
import org.junit.Test;
public class TestJunit {
@Test
public void test1() {
System.out.println("我的第一个junit的小例子...");
}
}
例子2,使用Assert:
import org.junit.Test;
import org.junit.Assert; public class TestJunit { @Test
public void test2() {
int val1 = 10;
int val2 = 12;
int sum = val1 + val2;
// 使用Assert来把某个变量值和预期值进行比较
// 和预期值不同时,到junit窗口去看错误栈吧
Assert.assertEquals(sum, 21);
}
}
例子3,使用@Before注解:
@Before一般用于实例化测试方法中需要用到的java对象,或链接数据库等情景。
import org.junit.Before;
import org.junit.Test;
import org.junit.Assert; public class TestJunit { Utils utils = null; @Before
public void before() {
utils = new Utils();
} @Test
public void test2() {
int sum = utils.add(12, 13);
Assert.assertEquals(sum, 25);
}
} class Utils {
public int add(int num1, int num2) {
return num1 + num2;
}
}
例子4,使用@After注解:
一般用于关闭连接,关闭流等操作,此处就不提供例子啦。用法同@Before注解。
例子5,使用@Test预期值:
import org.junit.Before;
import org.junit.Test; public class TestJunit { Utils utils = null; @Before
public void before() {
utils = new Utils();
} @Test(expected = ArithmeticException.class)
public void test() {
utils.divide(4, 0);
}
} class Utils { public int divide(int num1, int num2) {
return num1 / num2;
}
}
注释:
a, 如果报错,可查看Junit窗口的错误栈信息,会给出预期值和实际值,以及报错信息。无论对错,总要来看一下执行结果吧。
b, 如果想一次测试所有方法,不要选中方法,选中类名--》右键--》Run As--》JUnit Test。
c, 类中不想使用Assert类来调用assertEquals方法了怎么办,直接静态引用Assert类的所有方法,"import static org.junit.Assert.*;"
junit4主要注解介绍:
@BeforeClass 全局只会执行一次,而且是第一个运行
@Before 在测试方法运行之前运行
@Test 测试方法
@After 在测试方法运行之后允许
@AfterClass 全局只会执行一次,而且是最后一个运行
@Ignore 忽略此方法
写的不好,只为自己做笔记,下面链接本园子一个相当棒的介绍Junit的文章。
文章:Java单元测试(Junit+Mock+代码覆盖率)
地址:http://www.cnblogs.com/AloneSword/p/4109407.html
junit的简单用法的更多相关文章
- CATransition(os开发之画面切换) 的简单用法
CATransition 的简单用法 //引进CATransition 时要添加包“QuartzCore.framework”,然后引进“#import <QuartzCore/QuartzCo ...
- jquery.validate.js 表单验证简单用法
引入jquery.validate.js插件以及Jquery,在最后加上这个插件的方法名来引用.$('form').validate(); <!DOCTYPE html PUBLIC " ...
- NSCharacterSet 简单用法
NSCharacterSet 简单用法 NSCharacterSet其实是许多字符或者数字或者符号的组合,在网络处理的时候会用到 NSMutableCharacterSet *base = [NSMu ...
- [转]Valgrind简单用法
[转]Valgrind简单用法 http://www.cnblogs.com/sunyubo/archive/2010/05/05/2282170.html Valgrind的主要作者Julian S ...
- Oracle的substr函数简单用法
substr(字符串,截取开始位置,截取长度) //返回截取的字 substr('Hello World',0,1) //返回结果为 'H' *从字符串第一个字符开始截取长度为1的字符串 subst ...
- Ext.Net学习笔记19:Ext.Net FormPanel 简单用法
Ext.Net学习笔记19:Ext.Net FormPanel 简单用法 FormPanel是一个常用的控件,Ext.Net中的FormPanel控件同样具有非常丰富的功能,在接下来的笔记中我们将一起 ...
- TransactionScope简单用法
记录TransactionScope简单用法,示例如下: void Test() { using (TransactionScope scope = new TransactionScope()) { ...
- WPF之Treeview控件简单用法
TreeView:表示显示在树结构中分层数据具有项目可展开和折叠的控件 TreeView 的内容是可以包含丰富内容的 TreeViewItem 控件,如 Button 和 Image 控件.TreeV ...
- listActivity和ExpandableListActivity的简单用法
http://www.cnblogs.com/limingblogs/archive/2011/10/09/2204866.html 今天自己简单的总结了listActivity和Expandable ...
随机推荐
- How get a String Width in Libgdx?
http://stackoverflow.com/questions/16600547/how-get-a-string-width-in-libgdx
- python——读取MATLAB数据文件 *.mat
鉴于以后的目标主要是利用现有的Matlab数据(.mat或者.txt),主要考虑python导入Matlab数据的问题.以下代码可以解决python读取.mat文件的问题.主要使用sicpy.io即可 ...
- JSP之response对象使用
1.使用response对象实现重定向 response.sendRedirect("http://www.cnblogs.com"); 2.使用response对象刷新页面 每隔 ...
- 利用memcpy函数实现float到QByteArray的相互转化
一.为什么要实现float到QByteArry之间的相互转化 在总线通讯过程中(例如串口通讯),总线上传输的是字节数组变量,即ByteArray型的变量,在Qt中即为QbyteArray型变量.总线发 ...
- Everything:速度最快的文件名搜索工具(Linux版本) 转
Everything是windows的一个快速搜索工具. 基本上转移到Linux上来后,没有怎么用过. 一直在用Gnome-Do,感觉还可以. 这个程序只是用来练习wxPython用的,目前还只是一个 ...
- thinkphp 无限极分类的数据库设计及效果测试
控制器继承IndexAction.class.php <?php // 本类由系统自动生成,仅供测试用途 class IndexAction extends CateAction { } ?&g ...
- SEMI-PARAMETRIC TOPOLOGICAL MEMORY FOR NAVIGATION
github: https://github.com/nsavinov/SPTM
- linux sh 读取文件内容,if判读语句,变量var打印
#!/bin/bash #1 读取文件 并显示 cat state.txt | while read line do echo $line done #2 读取文件 并显示 cat state.txt ...
- Axiom3D写游戏:第一个窗口
Axiom主要的代码大致翻看了下,就想到了自己来模拟一下游戏开发. 这章主要包括创建窗口及3D渲染的一些基本元素,并添加一个第三人称的骨骼动画作主角,加上前文中修改过后的地形组件,能用鼠标和键盘进行漫 ...
- 【CSS】网页样式记录
一.按钮 p.tiy { display: inline-block; margin-top: 15px; margin-bottom: 10px; vertical-align: middle; t ...