技术开发 频道

JUNIT简单实例及模板

【IT168  技术文档】开发过程中进行单元测试,尽可能尽早的将BUG找出,是开发者应该做的。JUNIT为JAVA开发者提供了一个很好的测试机制,以下是一个简单的JUNIT应用实例,也是初学可供参考的JUNIT模板。

package junit.sineat.templet; import java.util.Hashtable; import junit.framework.Assert; import junit.framework.TestCase; import junit.framework.TestSuite; 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 ...{ super.setUp(); hasha =new Hashtable();//这里 } /** *//**用tearDown来销毁所占用的资源*/ protected void tearDown() throws Exception ...{ super.tearDown(); //System.gc(); } /** *//**写一个测试方法断言期望的结果**/ public void testBodyStatus() ...{ //hasha =new Hashtable();//有此句后也可去掉setUp() tearDown() assertNotNull(hasha); //hasha.put("0","let's try again");//test1.error版 assertTrue(hasha.isEmpty());//期望为空 } /** *//**再写一个测试方法断言期望的结果**/ public void testBodySame() ...{ //hashb=(Hashtable)hasha.clone(); //test2.error版 hashb=hasha; //test2.OK 版 Assert.assertSame(hasha,hashb); } /** *//**suite()方法,使用反射动态的创建一个包含所有的testXxxx方法的测试套件**/ public static TestSuite suite() ...{ return new TestSuite(JunitB.class); } /** *//****写一个main()运行测试*****************/ public static void main(String args[]) ...{ junit.textui.TestRunner.run(suite());//以文本运行器的方式方便的 //junit.swingui.TestRunner.run(JunitB.class); } }
以上为JUNIT的简单测试样例,不需过多考虑性能及规范,但资深JAVA开发者建议:

一、不要在测试用例的构造函数中做初始化
    答案是重载测试用例的setUp()方法进行初始化。

二、不要假定测试用例中测试的执行次序
    好的习惯是保持测试之间的独立性,使得它们在任何次序下执行的结果都是相同的。

三、测试要避免人工干预
    经验二讲的是不同的测试要避免相关性,而经验三讲的其实就是测试要避免自相关。

四、在子类中调用父类的setUp() 和tearDown()

五、不要硬性规定数据文件的路径

六、把测试的代码和被测的代码放在同样的目录下

七、正确命名测试

八、书写测试时要考虑地区和国家设置

九、利用Junit 的自动异常处理书写简洁的测试代码
    事实上在Junit 中使用try-catch 来捕获异常是没有必要的,Junit 会自动捕获异常。那些没有被捕获的异常就被当成错误处理。

十、充分利用Junit 的assert/fail 方法
     assertSame()用来测试两个引用是否指向同一个对象
     assertEquals()用来测试两个对象是否相等

十一、确保测试代码与时间无关

十二、使用文档生成器做测试文档。
0
相关文章