一、介绍
1、现在Junit的最新版本是4.7,仍然属于Junit4这个范围。Junit官网:http://www.junit.org/
2、什么是单元测试:写了个类,要给别人用,需要先测试一下里面的方法有没有bug。
以前测试是这么来写:
public class T { public int add(int x,int y){ return x + y; } public static void main(String[] args) { int z = new T().add(3, 5); System.out.println(z); } }
(这样的缺点:不同的类里面的main方法不能一起运行,而且要用人眼观察)
3、为什么要进行单元测试:提高程序的健壮性、降低后期的成本
4、Eclipse本身是带了Junit包的
建立时,测试的类与开发的类要分开来存放。
二、使用Junit步骤
下面是建立指定测试类的步骤:
1、
2、点击next,输入测试类名称和对某个类进行测试:
3、点击next,选择对将要测试的类的哪个方法进行测试:
4、点击finish,导入junit的jar包(使用Junit需要导入Junit的jar包),可以导入eclipse中自带的Junit的jar包,也可以导入自己从网上下载到的最新的jar包:
5、测试类例子:
//Assert:断言 //静态引入,Assert类中是静态方法:静态引入之后,直接调用方法就可以了,不用“类名+.”进行调用 import static org.junit.Assert.*; import junit.T; import org.junit.Test; public class TTest { @Test public void testAdd() { int z = new T().add(3, 5); assertEquals(8, z); //判断是否相等:期望值:8,实际值:z } }
运行:
结果:(绿色:没有bug 不是绿色:有bug)
【
如何测试“抛异常”:
@Test(expected=java.lang.ArithmeticException.class) public void testDivide(){ int z = new T().divide(8, 0); }
如何测试没有返回值的方法?看该方法中的操作是不是在实际中真的按照原想的执行。
还可以测试servet、struts 2、spring等
】
三、说明
1、Junit的结果:
Failure是测试失败;
Error是测试程序本身出错。
2、JUnit4 Annotation
(1)@Test: 测试方法
a)(expected=XXException.class)
b)(timeout=xxx)
(2)@Ignore: 被忽略的测试方法
(3)@Before: 每一个测试方法之前运行
(4)@After: 每一个测试方法之后运行
(5)@BeforeClass: 所有测试开始之前运行
(6)@AfterClass: 所有测试结束之后运行
3、当有多个测试类时,如何将这些测试类一起运行(运行多个测试):
(1)
(2)
4、测试框架
除了Junit,还有TestNG等。