在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----测试运行器