之前测试一个方法总要写一个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的简单用法的更多相关文章

  1. CATransition(os开发之画面切换) 的简单用法

    CATransition 的简单用法 //引进CATransition 时要添加包“QuartzCore.framework”,然后引进“#import <QuartzCore/QuartzCo ...

  2. jquery.validate.js 表单验证简单用法

    引入jquery.validate.js插件以及Jquery,在最后加上这个插件的方法名来引用.$('form').validate(); <!DOCTYPE html PUBLIC " ...

  3. NSCharacterSet 简单用法

    NSCharacterSet 简单用法 NSCharacterSet其实是许多字符或者数字或者符号的组合,在网络处理的时候会用到 NSMutableCharacterSet *base = [NSMu ...

  4. [转]Valgrind简单用法

    [转]Valgrind简单用法 http://www.cnblogs.com/sunyubo/archive/2010/05/05/2282170.html Valgrind的主要作者Julian S ...

  5. Oracle的substr函数简单用法

    substr(字符串,截取开始位置,截取长度) //返回截取的字 substr('Hello World',0,1) //返回结果为 'H'  *从字符串第一个字符开始截取长度为1的字符串 subst ...

  6. Ext.Net学习笔记19:Ext.Net FormPanel 简单用法

    Ext.Net学习笔记19:Ext.Net FormPanel 简单用法 FormPanel是一个常用的控件,Ext.Net中的FormPanel控件同样具有非常丰富的功能,在接下来的笔记中我们将一起 ...

  7. TransactionScope简单用法

    记录TransactionScope简单用法,示例如下: void Test() { using (TransactionScope scope = new TransactionScope()) { ...

  8. WPF之Treeview控件简单用法

    TreeView:表示显示在树结构中分层数据具有项目可展开和折叠的控件 TreeView 的内容是可以包含丰富内容的 TreeViewItem 控件,如 Button 和 Image 控件.TreeV ...

  9. listActivity和ExpandableListActivity的简单用法

    http://www.cnblogs.com/limingblogs/archive/2011/10/09/2204866.html 今天自己简单的总结了listActivity和Expandable ...

随机推荐

  1. SpringMVC深度探险(三) —— DispatcherServlet与初始化主线

    在上一篇文章中,我们给出了构成SpringMVC应用程序的三要素以及三要素的设计过程.让我们来归纳一下整个设计过程中的一些要点: SpringMVC将Http处理流程抽象为一个又一个处理单元 Spri ...

  2. C#里的SubString和Convert.ToDateTime

    1.C#里的SubString String.SubString(int   index,int   length) index:开始位置,从0开始 length:你要取的子字符串的长度 2.C#语言 ...

  3. 自然语言交流系统 phxnet团队 创新实训 项目博客 (八)

    在本项目中使用到的“文本转语音”的技术总结: 文本转语音,使用的是科大讯飞的接口,因为此作品之中语音包不是重点,所以语音包的转换我们统一调用的科大讯飞的语音包接口,依旧是在线的文字转语音,客户端将来自 ...

  4. 原创:如何实现在Excel通过循环语句设置指定行的格式

    原创:如何实现在Excel通过循环语句设置指定行的格式 一.需求: 想让excel的某些行(比如3的倍数的行)字体变成5号字 如何整: 二.实现: Sub code() To Range(" ...

  5. VIM中 文件的打开与保存

    用 :edit 命令打开一个文件 :edit + {filename}           就可以打开一个文件到缓冲区中, 并且可以加文件路经的: 在路经中, %表示当前文件的完整路经, 用:h 可以 ...

  6. Unity 各个组件参数总结

    今天在蛮牛教育上学习了NGUI的课程下面给大家总结了一些小知识点希望对大家有帮助UICamera-可以添加到任何相机,包含事件系统.UICamera是每个UI的重要组成部分.它负责发送Camera中所 ...

  7. CI框架 -- 开发环境、生产环境

    开发者常常希望当系统运行在开发环境或生产环境中时能有不同的行为, 例如,在开发环境如果程序能输出详细的错误信息将非常有用,但是在 生产环境这将造成一些安全问题. ENVIRONMENT 常量 Code ...

  8. js 操作json对象增删改

    //将表单序列化成字符串 $.fn.serializeObject = function () { var obj = {}; var count = 0; $.each(this.serialize ...

  9. js 1+'2' == '1'+'2'

    前言 非常深入地讲解了包含隐式转换时js计算过程,全篇干货.本文由@keenjaan授权分享. 本文由@仙人掌推荐分享 正文从这里开始 你有没有在面试中遇到特别奇葩的js隐形转换的面试题,第一反应是怎 ...

  10. wamp 配置虚拟主机

    1.首先打开apache的配置文件httpd.conf,并去掉#Include conf/extra/httpd-vhosts.conf前面的#,启用虚拟主机功能 2.先把localhost配置好,免 ...