之前测试一个方法总要写一个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. MFC——CDC

    CDC类定义的是设备上下文对象的类,有称设备环境对象类. Windows使用与设备无关的图形设备环境(DC:Device Context)进行显示. 说到CDC类就不能不提一下GdiObject——图 ...

  2. javascript常用功能收藏

    引用:http://www.css88.com/archives/5180 收集了一些比较常用的javascript函数. 字符串长度截取 function cutstr(str, len) { va ...

  3. 总结一些笔记上的C和C++知识点

    1.如果没有提供自己的copy构造函数,C++会提供一个默认的copy构造函数,是成员到成员的copy. 2.C中static的作用: 1.隐藏:如果未加static,编译多个文件的时候,所有的全局变 ...

  4. Mac 系统上安装Protocol buffer

    1. cd /Software/protobuf-2.5.0 2.sudo ./configure --prefix=$/Software/protobuf-2.5.0 3.sudo make 4.s ...

  5. python __getattr__

    1.__getattr__ 方法的作用:当调用不存在的属性,就会调用__getattr__()方法: 当一般位置找不到attribute的时候,会调用getattr,返回一个值或AttributeEr ...

  6. 记一次win10 installer安装MySQL 5.7的过程

    最新发现:其实就是windows显示的DPI改为了200%导致的,改成100%就没问题了.囧 不想折腾参数配置什么的,直接使用installer安装的. 诡异的是,安装完成之后需要配置,但界面上看不到 ...

  7. C++编程基础练习

    注:本文练习题均出自<Essential C++>第一章 练习1,1 从一个简单程序开始 #include<iostream> #include<string> u ...

  8. css3 -- 自动生成序号(不使用JS,可任意排序)

    需求:一个table 需要在第一列生成序号:1.2.3.4.5......  并且自适应行数 不使用后台程序,开始考虑使用JS,但是一旦前台排序后,序号就乱了,最后采用CSS的一个计数器方法实现! & ...

  9. ym——Android开发MVP模式(攻克了View和Model的耦合)

    转载请注明本文出自Cym的博客(http://blog.csdn.net/cym492224103),谢谢支持! 什么是MVP呢?它又和我们经常听到的MVC有什么关系了以及差别呢? MVP 是从经典的 ...

  10. C# 判断一个字符串是否为url

    /// <summary> /// 判断一个字符串是否为url /// </summary> /// <param name="str">< ...