编写单元测试用列
通常,开发完DAO层的代码,都需要编写JUnit测试用列来进行数据层测试.
1、新建一个测试用例,点击“File->New->Other…菜单项,在弹出的“New”对话框中选择”Java->JUnit”,下的TestCase 或TestSuite,就进入“New JUnit TestCase”对话框
2、在“New JUnit TestCase”对话框填写相应的栏目,主要有Name(测试用例名),SuperClass(测试的超类一般是默认的junit.framework.TestCase),Class Under Test(被测试的类),Source Folder(测试用例保存的目录),Package(测试用例包名),及是否自动生成main,setUp,tearDown方法。
3、如果点击下面的”Next>”按钮,你还可以直接勾选你想测试的被测试类的方法,Eclipse将自动生成与被选方法相应的测试方法,点击“Fishish”按钮后一个测试用例就创建好了。
4、编写完成你的测试用例后,点击“Run”按钮就可以看到运行结果了。
在eclipse里面开发junit真的很方便,只要在相应的类文件中点右键,new-->junit test case就可以生成一个测试类,里面大都代码都有了。
但要测试的方法的访问权限要设为public
下面简单介绍一下上边用到的静态类junit.framework.Assert。该类主要包含7个方法:
1.assertEquals()方法,用来查看对象中存的值是否是期待的值,与字符串比较中使用的equals()方法类似;
2.assertFalse()和assertTrue()方法,用来查看变量是是否为false或true,如果assertFalse()查看的变量的值是false则测试成功,如果是true则失败,assertTrue()与之相反。
3.assertSame()和assertNotSame()方法,用来比较两个对象的引用是否相等和不相等,类似于通过“==”和“!=”比较两个对象;
4.assertNull()和assertNotNull()方法,用来查看对象是否为空和不为空。
部分代码
public void testId() {
book.setId(001); //设置id属性的值为001
//使用Assert查看id属性的值是否为001
Assert.assertEquals(001, book.getId());
System.out.println(id属性被测试!);
}
public void testName() {
book.setName(ASP); //设置name属性的值为ASP
//使用Assert查看name属性的值是否为JSP,这是个必然出现错误的测试
Assert.assertEquals(JSP, book.getName());
System.out.println(name属性被测试!);
}
测试成功会显示绿色进度条
测试不成功会显示红色进度条
public static void main(String[] args) {
//使用TestSuite组装测试类
TestSuite ts = new TestSuite();
ts.addTestSuite(BookTest.class);
//textui,命令行方式
junit.textui.TestRunner.run(ts);
//swingui,Swing方式
//junit.swingui.TestRunner.run(ts.getClass());
//awtui,AWT方式
//junit.awtui.TestRunner.run(ts.getClass());
}
其中TestSuite是用来组织测试类的,通过其addTestSuite()方法将测试类添加到ts对象中,凡是添加到ts中的测试类都将在junit.textui.TestRunner.run()时被执行。此外,您也可以在定义ts对象时利用其构造函数将测试类添加给ts对象,例如:
TestSuite ts = new TestSuite(BookTest.class);
这并不会影响到后续使用addTestSuite()方法。再有,JUnit提供了三种运行方式,junit.textui.TestRunner是命令行方式的,junit.swingui.TestRunner和junit.awtui.TestRunner是可视化方式的,后两个这里已经注释掉了,如果您想查看效果,可以将注释去掉。