读书人

Unitils配备测试方案

发布时间: 2012-11-18 10:51:21 作者: rapoo

Unitils配置测试方案

?

Unitils集成DbUnit,数据库配置。

?

unitils.properties

?

?

unitils.modules=database,dbunit,hibernate,spring,#unitils.module.dbunit.className=sample.unitils.module.CustomExtModule#databasedatabase.driverClassName=com.mysql.jdbc.Driverdatabase.url=jdbc:mysql://localhost:3306/amsdatabase.dialect = mysqldatabase.userName=rootdatabase.password=123database.schemaNames=ams# The database maintainer is disabled by default.updateDataBaseSchema.enabled=true#This table is by default not created automaticallydbMaintainer.autoCreateExecutedScriptsTable=truedbMaintainer.script.locations=E:/workspace_ams_1/ams/resources/dbscriptsdbMaintainer.script.fileExtensions=sqlDbUnitModule.DataSet.factory.default=com.unitils.dataset.excel.MultiSchemaXlsDataSetFactoryDbUnitModule.ExpectedDataSet.factory.default=com.unitils.dataset.excel.MultiSchemaXlsDataSetFactory#DbUnitModule.DataSet.loadStrategy.default=org.unitils.dbunit.datasetloadstrategy.impl.CleanInsertLoadStrategyDatabaseModule.Transactional.value.default=commit # XSD generatordataSetStructureGenerator.xsd.dirName=resources/xsddbMaintainer.generateDataSetStructure.enabled=truesequenceUpdater.sequencevalue.lowestacceptable=100
?

?

?

测试用例基类UnitilsTest.java

?

package com.xxxx.ams.base;import org.springframework.context.ApplicationContext;import org.unitils.UnitilsJUnit4;import org.unitils.spring.annotation.SpringApplicationContext;@SpringApplicationContext({"spring-context.xml"})public class UnitilsTest extends UnitilsJUnit4 {@SpringApplicationContextprotected ApplicationContext applicationContext;}
?

?

?

测试Service类

?

package com.xxxx.ams.service;import java.util.Date;import javax.annotation.Resource;import static org.junit.Assert.*;import org.apache.commons.codec.digest.DigestUtils;import org.junit.After;import org.junit.Assert;import org.junit.Before;import org.junit.Test;import com.xxxx.ams.base.BaseTestCase;import com.xxxx.ams.entity.User;import com.xxxx.ams.service.UserService;/** * 测试用户操作 * 1、创建用户 * 2、修改用户信息 * 3、根据邮箱查找用户 * 4、检查邮箱是否存在 * 5、删除用户 * */public class UserServiceTest extends BaseTestCase{@Resourceprivate UserService userService;@Beforepublic void init(){}@Testpublic void testSaveUser(){if(!userService.isExistByEmail("test@test.com")){User user = new User();user.setPassword("123456");String passwordMd5 = DigestUtils.md5Hex(user.getPassword());user.setPassword(passwordMd5);user.setCreateDate(new Date());user.setEmail("test@test.com"); user.setIsAccountEnabled(true);user.setIsAccountExpired(false);user.setIsAccountLocked(false);user.setIsCredentialsExpired(false);user.setName("xxxx");user.setUsername("xxxx");userService.save(user);}}@Testpublic void testUpdateUser(){User po = userService.getUserByEmail("test@test.com");Assert.assertNotNull(po);po.setName("aaaa");userService.update(po);User po2 = userService.getUserByEmail("test@test.com");assertEquals("aaaa", po2.getName());}@Testpublic void testGetUserByEmail() {User user = userService.getUserByEmail("test@test.com");Assert.assertNotNull(user);}@Testpublic void testCheckUserEmailExsit() {boolean flag = userService.isExistByEmail("test@test.com");Assert.assertTrue(flag);}@Testpublic void testDeleteUser(){User po = userService.getUserByEmail("test@test.com");userService.delete(po);boolean flag = userService.isExistByEmail("test@test.com");assertEquals(false, flag);}@Afterpublic void destroy(){}}
?

?

测试Dao层

创建Excel文件,用于数据验证。(ams_user.xls ?, ?ams_user.expected.xls)

?

?

package com.xxxx.ams.dao;import static org.junit.Assert.assertEquals;import static org.junit.Assert.assertNotNull;import static org.junit.Assert.assertNull;import java.util.List;import org.junit.Test;import org.unitils.dbunit.annotation.DataSet;import org.unitils.dbunit.annotation.ExpectedDataSet;import org.unitils.spring.annotation.SpringBeanByType;import com.unitils.dataset.util.XlsDataSetBeanFactory;import com.xxxx.ams.base.UnitilsTest;import com.xxxx.ams.entity.User;public class UserDaoTest extends UnitilsTest {@SpringBeanByTypeprivate UserDao userDao;@Test@DataSet("ams_user.xls")// 准备数据public void findUserByEmail() {User user = userDao.getUserByEmail("xxxx-2@xxxx.com");assertNull("不存在邮箱为xxxx-1@xxxx.com的用户!", user);user = userDao.getUserByEmail("xxxx-1@xxxx.com");assertNotNull("xxxx1@xxxx.com邮箱存在!", user);assertEquals("xxxx-1", user.getUsername());}// 验证数据库保存的正确性@Test@ExpectedDataSet("ams_user.expected.xls")// 准备验证数据public void saveUser() throws Exception {// 通过XlsDataSetBeanFactory数据集绑定工厂创建测试实体User u = XlsDataSetBeanFactory.createBean("ams_user.xls", "ams_user",User.class);userDao.save(u); // 执行用户信息更新操作}// 验证数据库保存的正确性@Test@ExpectedDataSet("ams_user.expected.xls")// 准备验证数据public void saveUsers() throws Exception {List<User> users = XlsDataSetBeanFactory.createBeans("ams_user.xls", "ams_user", User.class);for (User u : users) {userDao.save(u);}}}
?

?

?

?

?

读书人网 >软件架构设计

热点推荐