开发过程中进行单元测试尽可能尽早的将BUG找出是开发者应该做的JUNIT为JAVA开发者提供了一个很好的测试机制以下是一个简单的JUNIT应用实例也是初学可供参考的JUNIT模板
package junitsineattemplet;import javautilHashtable;import junitframeworkAssert;import junitframeworkTestCase;import junitframeworkTestSuite;public class JunitB extends TestCase{/** *//**定义你需要测试的类及用到的变量*****************************/public Hashtable hasha=null;// public Hashtable hashb=null;/** *//*******************************************************/public JunitB(String name){super(name);//创建子类 }/** *//**用setUp进行初始化操作*/protected void setUp() throws Exception {supersetUp();hasha =new Hashtable();//这里 }/** *//**用tearDown来销毁所占用的资源*/protected void tearDown() throws Exception {supertearDown();//Systemgc(); }/** *//**写一个测试方法断言期望的结果**/public void testBodyStatus() {//hasha =new Hashtable();//有此句后也可去掉setUp() tearDown() assertNotNull(hasha);//hashaput(lets try again);//testerror版 assertTrue(hashaisEmpty());//期望为空 }/** *//**再写一个测试方法断言期望的结果**/public void testBodySame() {//hashb=(Hashtable)hashaclone(); //testerror版 hashb=hasha; //testOK 版 AssertassertSame(hashahashb);}/** *//**suite()方法使用反射动态的创建一个包含所有的testXxxx方法的测试套件**/public static TestSuite suite() {return new TestSuite(JunitBclass);}/** *//****写一个main()运行测试*****************/public static void main(String args[]) {junittextuiTestRunnerrun(suite());//以文本运行器的方式方便的//junitswinguiTestRunnerrun(JunitBclass); }}
以上为JUNIT的简单测试样例不需过多考虑性能及规范但资深JAVA开发者建议
一不要在测试用例的构造函数中做初始化
答案是重载测试用例的setUp()方法进行初始化
二不要假定测试用例中测试的执行次序
好的习惯是保持测试之间的独立性使得它们在任何次序下执行的结果都是相同的
三测试要避免人工干预
经验二讲的是不同的测试要避免相关性而经验三讲的其实就是测试要避免自相关
四在子类中调用父类的setUp() 和tearDown()
五不要硬性规定数据文件的路径
六把测试的代码和被测的代码放在同样的目录下
七正确命名测试
八书写测试时要考虑地区和国家设置
九利用Junit 的自动异常处理书写简洁的测试代码
事实上在Junit 中使用trycatch 来捕获异常是没有必要的Junit 会自动捕获异常那些没有被捕获的异常就被当成错误处理
十充分利用Junit 的assert/fail 方法
assertSame()用来测试两个引用是否指向同一个对象
assertEquals()用来测试两个对象是否相等
十一确保测试代码与时间无关
十二使用文档生成器做测试文档