Unitils集成DbUnit,数据库配置。
unitils.properties
unitils.modules=database,dbunit,hibernate,spring,
#unitils.module.dbunit.className=sample.unitils.module.CustomExtModule
#database
database.driverClassName=com.mysql.jdbc.Driver
database.url=jdbc:mysql://localhost:3306/ams
database.dialect = mysql
database.userName=root
database.password=123
database.schemaNames=ams
# The database maintainer is disabled by default.
updateDataBaseSchema.enabled=true
#This table is by default not created automatically
dbMaintainer.autoCreateExecutedScriptsTable=true
dbMaintainer.script.locations=E:/workspace_ams_1/ams/resources/dbscripts
dbMaintainer.script.fileExtensions=sql
DbUnitModule.DataSet.factory.default=com.unitils.dataset.excel.MultiSchemaXlsDataSetFactory
DbUnitModule.ExpectedDataSet.factory.default=com.unitils.dataset.excel.MultiSchemaXlsDataSetFactory
#DbUnitModule.DataSet.loadStrategy.default=org.unitils.dbunit.datasetloadstrategy.impl.CleanInsertLoadStrategy
DatabaseModule.Transactional.value.default=commit
# XSD generator
dataSetStructureGenerator.xsd.dirName=resources/xsd
dbMaintainer.generateDataSetStructure.enabled=true
sequenceUpdater.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 {
@SpringApplicationContext
protected 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{
@Resource
private UserService userService;
@Before
public void init(){
}
@Test
public 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);
}
}
@Test
public 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());
}
@Test
public void testGetUserByEmail() {
User user = userService.getUserByEmail("test@test.com");
Assert.assertNotNull(user);
}
@Test
public void testCheckUserEmailExsit() {
boolean flag = userService.isExistByEmail("test@test.com");
Assert.assertTrue(flag);
}
@Test
public void testDeleteUser()
{
User po = userService.getUserByEmail("test@test.com");
userService.delete(po);
boolean flag = userService.isExistByEmail("test@test.com");
assertEquals(false, flag);
}
@After
public 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 {
@SpringBeanByType
private 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);
}
}
}
分享到:
相关推荐
NULL 博文链接:https://mshijie.iteye.com/blog/524744
详细介绍了Unitils的实用方法和步骤
Unitils 测试框架目的是让单元测试变得更加容易和可维护。Unitils 构建在DbUnit 与 EasyMock 项目之上并与JUnit 和TestNG 相结合。...Unitils 设计成以一种高度可配置和松散耦 合的方式来添加这些服务到单元测试中
单元测试框架Unitils例子工程,集成了DBUnit,EasyMock.
unitils整合dbunit利用excel进行单元测试 包含mock以及整合spring进行测试
Unitils-core-3.3的jar包
Unitils源于尝试更加务实的单元测试,它始于一套测试准则,并为了方便应用这些准则而开发了一个开源代码库。
Unitils设计成以一种高度可配置和松散偶合的框架来添加这些服务到单元测试中,其模块化的管理方式使Unitils更易进行扩展。1,JUnit4ClassRunner简介所有的测试方法testmethod都是在Runner下执行的,可以将Runner理解...
Unitils,最好的单元测试工具,可以对DB,Spring等做模块测试
2009/8/31 1 接口测试的背景 11 什么是接口测试 12 为什么做接口测试 13 接口测试的适用范围 ...54 Unitils 55 TestNG 56 CruiseControl 57 Clover 58 Mock 6 接口测试的方向 7 参考资料 8 作者介绍
unitils-3.3-with-dependencies.zip
Unitils 模块 - 启动 Selenium Web 驱动程序以测试 Web 应用程序的简单方法。
单元测试 JUnit 断言 注解 mock Unitils spring 注解
包含junit-4.11.jar, dbunit-2.4.9.jar, unitils-3.3-with-dependencies.zip, mockito-1.9.5.zip
17.5.1 配置Unitils测试环境 17.5.2 准备测试数据库及测试数据 17.5.3 编写DAO测试基类 17.5.4 编写BoardDao测试用例 17.6 服务层开发 17.6.1 UserService的开发 17.6.2 ForumService的开发 17.6.3 服务类Bean的装配...
17.5.1 配置Unitils测试环境 17.5.2 准备测试数据库及测试数据 17.5.3 编写DAO测试基类 17.5.4 编写BoardDao测试用例 17.6 服务层开发 17.6.1 UserService的开发 17.6.2 ForumService的开发 17.6.3 服务类Bean的装配...
它的主要模块有:·DatabaseModule:测试数据库维护和连接池·DbUnitModule:使用DBunit进行测试数据维护·HibernateModule:Hibernate配置支持和自动的数据库mapping检查·MockModule:支持使用Unitils的mock框架进行...
改资源配准测试,使用的unitils+dbUtils的结合使用的。
NULL 博文链接:https://caerun.iteye.com/blog/1783010