进行测试确不清理垃圾数据就像随地大小便一样让人无法忍受!
测试是应该进行,如果测试过程中给数据库中写入了垃圾数据怎么办,不用担心,JUnit的设计者早已考虑到了这个问题,下面看如何控制“测试垃圾”的回收。
结合Eclipse,这个实现非常的简单,80%的代码是Eclipse生成的,呵呵。
一、测试目标
private int a,b; public Calc() { } public int add() { return a + b; } public int getA() { return a; } public void setA(int a) { this.a = a; } public int getB() { return b; } public void setB(int b) { this.b = b; } } |
二、写测试用例
测试用例中的setup()方法会在测试逻辑最先调用。就相当于做初始化工作。
测试用例中的tearDown() 方法在测试逻辑之后调用。充当一个清理战场的角色,以清楚测试过程中对现场的状态的破坏。
public class CalcTest1 extends TestCase { Calc c=new Calc(); protected void setUp() throws Exception { c.setA(2); c.setB(1); } protected void tearDown() throws Exception { c=null; } public void testAdd() { int result=c.add(); assertEquals(3,result,0); // fail("尚未实现"); // TODO } } public class CalcTest2 extends TestCase { Calc c=new Calc(); protected void setUp() throws Exception { c.setA(2); c.setB(1); } protected void tearDown() throws Exception { c=null; } public void testAdd() { int result=c.add(); assertEquals(3,result,0); // fail("尚未实现"); // TODO } } |
本例中没有测试垃圾,因此tearDown() 实际上可以不用写。
三、生成测试单元
import junit.framework.TestSuite; public class AllTests { public static Test suite() { TestSuite suite = new TestSuite("Test for default package"); //$JUnit-BEGIN$ suite.addTestSuite(CalcTest1.class); suite.addTestSuite(CalcTest2.class); //$JUnit-END$ return suite; } } |
四、在Eclipse中执行单元测试