使用JUnit进行单元测试
下面开始按步骤讲解如何在Eclipse中使用JUnit工具。
(1)为单元测试代码创建一个Java项目,将其命名为JUnitTest。
(2)创建ItemTest类,该类用于测试公共类Item的行为(即方法)。在\创建Java类\对话框中设置该类的超类为TestCase,也就是继承JUnit框架的测试用例编写单元测试,单击\完成\按钮,如图1.25所示。
(3)在项目的构建路径中添加JUnit类库。右击项目名称,在弹出的快捷菜单中选择\构建路径\添加库\命令,在弹出的\添加库\对话框中选择Junit选项,单击\下一步\按钮,如图1.26所示。
(点击查看大图)图1.25 新建测试用例类
(点击查看大图)图1.26 \添加库\对话框
1.7.5 单元测试(2)
(4)在弹出的对话框中选择JUnit的版本为JUnit 4,单击\完成\按钮。
(5)在创建的ItemTest中,对Item类进行单元测试。Item是本系统的公共类之一,要实现该类的单元测试,需要编写以test作方法名称的前缀,创建testName()方法、testID()方法和testEquals()方法。另外还要重写父类的setUp()方法,在该方法中创建并初始化测试用例中需要的数据。 完整代码如下:
1. 2. 3. 4. 5. 6. 7. 8. 9.
import internalFrame.guanli.Item; import junit.framework.TestCase;
public class ItemTest extends TestCase{ ? private Item item;
protected void setUp() throws Exception { ? item=new Item(); item.setId(\
item.setName(\测试\ }
10. public void testID(){ ?
11. assertEquals(item.getId(), \ 12. }
13. public void testName(){ ?
14. assertEquals(item.getName(), \测试\ 15. }
16. public void testEquals(){ ? 17. Item newnewItem=new Item(); 18. newItem.setId(\
19. newItem.setName(\测试\ 20. assertEquals(item, newItem); 21. } 22. } 代码贴士
TestCase:该类是JUnit框架的测试用例类,所有的单元测试都需要继承该类。 setUp():该方法将在单元测试之前,为本类的所有单元测试提供测试数据。 testID():该方法用于测试Item类的getId()方法。 testName():该方法用于测试Item类的getName()方法。 testEquals():该方法用于测试Item类的相等性。
(6)在该类上单击鼠标右键,在弹出的快捷菜单中选择\运行方式\测试\命令,运行Item类的单元测试,根据警示条中的颜色,即可判断单元测试的成功与失败,如图1.23、图1.24所示。因为在本系统中不需要判断Item实例的相等性,所以Item类没有实现父类的equals()方法,可以不进行该测试;否则在判断两个Item类的实例对象是否相等时,将出现判断失败。 1.8 进货管理模块设计
进货管理模块是进销存管理系统中不可缺少的重要组成部分之一,它主要负责为系统记录进货单及其退货信息,相应的进货商品会添加到库存管理中。 1.8.1 进货管理模块概述
企业进销存管理系统中的进货管理模块主要包括进货单和进货退货两个部分。由于它们的实现方法基本相似,本节将以进货单功能为主,介绍进货管理模块对本系统的意义和实现的业务逻辑。 1.进货单
进货单功能主要负责记录企业的商品进货信息,可以单击\添加\按钮,在商品表中添加进货的商品信息。在\供应商\下拉列表框中选择不同的供应商,将会改变商品表中可以添加的商品。进货单的程序界面如图1.27所示。
(点击查看大图)图1.27 进货单程序界面 2.进货退货
进货退货功能主要负责记录进货管理中的退货信息,其界面效果如图1.28所示。在选择了退货的商品之后,单击\退货\按钮,将把表格中的商品退货信息更新到数据库中。
(点击查看大图)图1.28 进货退货程序界面 1.8.2 进货管理模块技术分析
进货管理模块使用JDBC实现事务操作。因为进货和退货的业务逻辑涉及到3个数据表,为保证数据的完整性,将3个数据表的操作放在事务中实现。如果对任何一个数据表的操作出现错误或是不可执行的操作,那么整个事务中的所有操作都将取消,并恢复到事务执行之前的数据状态;否则3个数据表的操作全部执行。下面介绍使用JDBC实现事务操作的关键方法。 1.setAutoCommit()方法
该方法用于设置连接对象的自动提交模式。如果连接对象的自动提交模式为True,则其所有SQL语句将被执行并作为单个事务提交;否则,该连接对象的SQL语句将聚集到事务中,直到调用commit()方法或rollback()方法为止。默认情况下,新连接的自动提交模式为True。 语法:
1.
void setAutoCommit(boolean autoCommit)
autoCommit:该参数为True表示启用连接对象的自动提交模式;为False表示禁用连接对象的自动提交模式。
2.getAutoCommit()
判断此连接对象是否启用了自动提交模式。