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