根据马克思主义哲学的原理,框架的出现并不是偶然的,有其出现的规律。当大量的重复劳动充斥于平常的工作中时,普通劳动者就会整天埋怨工作怎么怎么枯燥、怎么怎么忙、怎么怎么累;而高手往往会不断总结,将重复的劳动交给计算机去办;逐渐地,当重复劳动消失的时候,就是框架形成的时候。所以如果你是善于总结和会偷懒的人,那么你离高手就不远了。但如果你会偷懒但不会总结,那么先保住你的饭碗再做高手梦吧。
单元测试框架的形成过程也类似上述过程,单元测试是个很繁杂的工作,有时候测试代码比被测试代码还要多很多,如果没有一个框架,显然其工作量是惊人的,所以一群群的牛人为了使得单元测试效率更高,经过不断地探索,涌现出了越来越多的单元测试框架。
在众多的框架中,数JUnit最得人心,如果你之前没有用过JUnit,那么赶紧看看以下例子,你就知道该怎么偷懒了:
/************************************************************
* 项目名称:lhjTest
* 文件名称:CoolClassJTest.java
* 文件描述:CoolClassJTest.java
* 作者:Administrator
* 创建日期:2007-3-24
* 修改记录:
***********************************************************/
package org.lhj.cool.junit.test;
import junit.framework.TestCase;
import org.lhj.cool.junit.CoolClass;
/**
* @author Administrator
*/
public class CoolClassJTest extends TestCase
{
private CoolClass testClass;
/* (non-Javadoc)
* @see junit.framework.TestCase#setUp()
*/
protected void setUp() throws Exception
{
super.setUp();
testClass = new CoolClass();
}
/* (non-Javadoc)
* @see junit.framework.TestCase#tearDown()
*/
protected void tearDown() throws Exception
{
super.tearDown();
testClass = null;
}
/**
* test the null param
*/
public void testNullParamForReverseString()
{
try
{
testClass.reverseString(null);
fail();
}
catch (NullPointerException e)
{
}
}
/**
* test the "" param
*/
public void testEmptyStringForReverseString()
{
assertNull(testClass.reverseString(""));
}
/**
* test the simple param
*/
public void testSimpleParamForReverseString()
{
//test the "aaAA" param
assertEquals("AAaa", testClass.reverseString("aaAA"));
//test the "AAaa" param
assertEquals("aaAA", testClass.reverseString("AAaa"));
//the other tests...
}
}
* 项目名称:lhjTest
* 文件名称:CoolClassJTest.java
* 文件描述:CoolClassJTest.java
* 作者:Administrator
* 创建日期:2007-3-24
* 修改记录:
***********************************************************/
package org.lhj.cool.junit.test;
import junit.framework.TestCase;
import org.lhj.cool.junit.CoolClass;
/**
* @author Administrator
*/
public class CoolClassJTest extends TestCase
{
private CoolClass testClass;
/* (non-Javadoc)
* @see junit.framework.TestCase#setUp()
*/
protected void setUp() throws Exception
{
super.setUp();
testClass = new CoolClass();
}
/* (non-Javadoc)
* @see junit.framework.TestCase#tearDown()
*/
protected void tearDown() throws Exception
{
super.tearDown();
testClass = null;
}
/**
* test the null param
*/
public void testNullParamForReverseString()
{
try
{
testClass.reverseString(null);
fail();
}
catch (NullPointerException e)
{
}
}
/**
* test the "" param
*/
public void testEmptyStringForReverseString()
{
assertNull(testClass.reverseString(""));
}
/**
* test the simple param
*/
public void testSimpleParamForReverseString()
{
//test the "aaAA" param
assertEquals("AAaa", testClass.reverseString("aaAA"));
//test the "AAaa" param
assertEquals("aaAA", testClass.reverseString("AAaa"));
//the other tests...
}
}
从测试的实际代码看了一下,上一个类CoolClassTest,需要18行,而这个则只要8行,可以看出可以偷懒的空间有多少。
如果你还担心工作量不饱和,下一部分关于JUnit的介绍就可以不看了,否则的话,还是学学怎么偷懒吧。