JUnit测试单元框架
2016-02-23 本文已影响256人
onweer
junit框架介绍
JUnit ——是一个开发源代码的Java测试框架,用于编写和运行可重复的测试。他是用于单元测试框架体系xUnit的一个实例(用于java语言)。主要用于白盒测试,回归测试。
junit安装步骤
- 在http://download.sourceforge.net/junit/ 中下载JUnit包并将Junit压缩包解压。
- 添加CLASSPATH环境变量.
- 双击“CLASS-PATH”关键字添加字符串
“?:\Junit4.0\Junti.jar”
(注意,如果已有别的字符串请在该
字符串的字符结尾加上分号“;”),这样确定修改后Junit就可以在集成环境中应用了。 - 对于IDE环境,对于需要用到的JUnit的项目增加到lib中,其设置不同的IDE有不同的设置 。
junit使用规范
使用junit的时候,不应该把它和业务逻辑代码放在一起,应该新建一个类来做测试.
- 测试类命名
规则: 被测试的类的类名+Test
如:LoginTest
- 测试用例的命名
规则:test+用例方法的名称
如:testSum
- 测试程序的包名定义规范
规则 被测试的类的包名前加上test.
如: test.com.lee.util
测试数据的准备方案
有三种方案可以选择:
- 在程序中直接写入测试数据.
- 在输出数据项不多的情况下可以采用
- 使用junitpack包中的InputDataUtil工具类
- 需要加上
import junitpack InputDataUtil;
这个测试方案要求把测试数据放在一个XML文件中:
- ...
junit注解
使用junit注解,需要时用junit4版本.
- 注解参数
- @Test:使用该注解方法为测试方法,自动能够识别并执行
包含两个参数 :
expected = XXXException.class 期望出现的异常
timeout = xxx 设定程序运行的超时时间.
不能是静态方法,不能传形参 - Ignore:被忽略的方法
- Before:在每个测试方法之前被执行
- After: 在每个测试方法之后被执行
- BeforeClass : 在所有测试开始前执行
- AfterClass: 在所有测试开始之后执行
特别注意:
<pre>
setUp(),tearDown(),setUpBeforeClass(),tearDownAfterClass()这四个方法其实就是对应的
@Before、@BeforeClass、@After、@AfterClass这四个注解,
在Junit4开始使用注解时,其实可以替代这四个方法的功能,只是这四个方法是历史遗留方法,可以考虑使用,也可以直接使用注解替代。
</pre>
assertTrue(...) 参数的值应是true
assertFalse(...) 参数的值应是false
assertNull(...) 应是null值
assertNotNull(...) 应是非null的值
assertSame(...) 使用==比较的结果为true(表示同一个对象)
AssertNotSame(...) 使用==比较的结果为false
assertEquals(...) 两个对象equals()方法比较结果为true
代码示例
package com.lee;
import org.junit.Test;
public class junitDemo {
public static void main(String[] args) {
}
public static int sum(){
int x = 5;
int y = 10;
return x + y;
}
}
package com.lee;
import org.junit.*;
public class junitDemoTest {
@BeforeClass
public static void setUpBeforeClass() throws Exception {
}
@AfterClass
public static void tearDownAfterClass() throws Exception {
}
@Before
public void setUp() throws Exception {
}
@After
public void tearDown() throws Exception {
}
@Test
public void testSum() {
int max = junitDemo.sum();
Assert.assertSame(15, max);
Assert.assertEquals(new String("haha"), "haha");
Assert.assertNotNull(max);
Assert.assertTrue(true);
}
}
给个github follow me的链接,上面有很多初学者可供学习的资料,项目.
<a>https://github.com/SuperZee</a>