JUnit 3.x 测试框架
使用JUnit 3.x 进行单元测试
搭建JUnit 3.x(.x代表版本)测试框架,必须了解以下几个方法的作用。
- testXxx():JUnit 3.x 自动调用并执行的方法,必须声明为public并且不能带参数,必须以test开头,返回值为void。
- setUp():初始化,准备测试环境。
- tearDown():释放资源。
它们的调用顺序为setUp()—>testXxx()—>tearDown()。
使用JUnit 3.x 测试一个计算两个数相加的方法
//创建一个Calculate类,类里面有一个方法add()
package test.JUnitTest;
public class Calculate {
public int add(int a, int b) {
int c = a+b;
system.out.println(c);
return a+b;
}
}
//测试类
package test.JUnitTest;
import junit.framework.Assert;
import junit.framework.TestCase;
public class Test extends TestCase{
private Calculate cal;
protected void setUp() {
cal = new Calculate();
System.out.println("输出");
}
protected void tearDown() throws Exception {
super.tearDown();
System.out.println("结束");
}
//测试断言方法
public void testAdd() {
//断言add()方法1+2=3
Assert.assertEquals(cal.add(1, 2), 3);//此方法已过时
cal.add(1, 2);
}
}
//执行程序,红色表示失败,绿色表示成功
//JUnit测试框架不但允许进行一个TestCase的测试,还允许将多个TestCase组合成TestSuite,让整个测试自动完成。
- 可以清晰看到哪个方法先执行,哪个方法后执行
JUnit 4.x 测试框架
使用JUnit 4.x 进行单元测试
使用JUnit 4.x 完成测试一个计算两个数相加的方法
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import junit.framework.Assert;
public class CalculateTest {
private Calculate cal=null;
@Before
public void setUp() throws Exception{
cal = new Calculate();
}
@After
public void tearDown() throws Exception{
cal=null;
}
@Test
public void Add() {
Assert.assertEquals(cal.add(1, 2),3);
}
}
//@的下面的方法的访问修饰符要用public
以@符号开头的就是JUnit 4.x 中的注解Annotation,其实,JUnit 4.x 是一个全新的的JUnit测试框架,而不是旧框架的升级版本。JUnit 4.x 中注解作用就是起到指示测试程序测试步骤及标志的作用。
- JUnit 4.x 中常用注解:
注解标识 | 说明 |
---|---|
@Before | 标注每一个测试方法执行前都要执行的方法 |
@After | 标注每一个测试方法执行后都要执行的方法 |
@Test | 标注一个测试方法 |
@Ignore | 标注暂不参与测试的方法 |
@BeforeClass | 标注的方法在整个类的所有测试方法运行之前运行一次 |
@AfterClass | 标注的方法在整个类的所有测试方法运行结束之后运行一次 |
JUnit 3.x 和JUnit 4.x 的区别:
- 在JUnit 3.x 中对测试必须继承 TestCase
- JUnit 3.x 每个方法名必须以test开头.比如:testMethod1()
- JUnit3.x 必须要重写TestCase的setUp()方法和tearDown()方法,分别执行初始化和释放资源的操作
- JUnit 4.x 中使用@Before和@After来标识,方法名可以随意定义
如:testMethod1()** - JUnit3.x 必须要重写TestCase的setUp()方法和tearDown()方法,分别执行初始化和释放资源的操作
- JUnit 4.x 中使用@Before和@After来标识,方法名可以随意定义
- JUnit 4.x和普通类没有区别,只需加上注解标注即可