在junit3时候需要遵循以下规范,但在junit4以后使用注解的形式,以下大多数被优化了。
一、TestSuite处理测试用例有6个规约(否则会被拒绝执行测试)
A 测试用例必须是公有类(Public)B 测试用例必须继承与TestCase类
C 测试用例的测试方法必须是公有的( Public )D 测试用例的测试方法必须被声明为Void
E 测试用例中测试方法的前置名词必须是test
F 测试用例中测试方法误任何传递参数
二、setUp()和tearDown()方法
功能:分别提供初始化和反初始化每个测试方法。即:
setUp在每个测试方法调用前被调用,负责初始化测试方法所需要的测试环境;
tearDown在每个测试方法被调用之后被调用,负责撤销测试环境。它们与测试方法的关系可以描述如下:
测试开始 -> setUp -> testMethodXXXX -> tearDown ->测试结束
三、TestSuite使用
package com;
import junit.framework.TestCase;
import junit.framework.TestSuite;
import org.junit.Test;
public class JunitTest extends TestCase {
public static junit.framework.Test suite(){
//1、指定测试方法的办法
TestSuite suite = new TestSuite();
suite.addTest(new JunitTest("testAdd")); //测试指定的testAdd方法,但是必须重写下面的构造方法
return suite;
//2、测试所在类的全部方法
//return new TestSuite(JunitTest.class); 指定测试的类,测试其中全部的testXXX()方法
}
public JunitTest(String name){
super(name);
}
@Override
protected void setUp() throws Exception {
super.setUp();
//初始化
}
@Test
public void testAdd() {
System.out.println("23");
double result = Calculator.add(30, 60);
assertEquals("数据与期望值不符", 90, result, 0);
}
@Override
protected void tearDown() throws Exception {
super.tearDown();
//销毁
}
}
注:当未重写suite方法时默认执行当前类中全部符合testXXX()方法,故一般情况下默认不写。
四、junit4的例子
package com;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
public class AllTest{
@Before
public void before(){
System.out.println("before");
}
@Test
public void add(){
System.out.println(Calculator.add(13, 25));
}
@Test
public void add2(){
System.out.println(Calculator.add(33, 44));
}
@After
public void after(){
System.out.println("after");
}
}
运行结果:由此可知:@Before、@After、@Test的作用,简化了以上的setUp()和tearDown()方法。
五、TestCse、TestSuite、TestRunner区别
TestCase----测试用例
TestSuite----测试集合
TestRunner----测试运行器