daim
来源:互联网 发布:远光软件工资待遇 编辑:程序博客网 时间:2024/05/16 18:00
/**
* 〈能够自动加载数据库环境的Spring上下文的单元测试用例〉 〈通过DBUnit工具和继承Springmock中的单元测试用例,使得每次执行单元测试用例都可以有一个稳定的数据库环境〉
*
* @author c36091
* @version 2007-01-25
* @see SpringCase
* @since
*/
public abstract class SpringCaseWithDB extends SpringCase
{
protected static final DatabaseUnitHelper dbUnitHelper = new DatabaseUnitHelper();
/**
* 返回包含初始化数据的文件文件,一般是XML.
*/
protected abstract String getImportFilePath();
/**
* 如果不采用默认数据库连接属性配置文件,可以指定一个新的属性配置文件.
*/
protected String getPropertiesPath()
{
return "classpath:config/testjdbc.properties";
}
/**
* 如果不采用默认数据库连接属性,可以给定一个新的配置属性对象. <功能详细描述>
*
* @return Properties
* @see [类、类#方法、类#成员]
*/
protected Properties getProperties()
{
return null;
}
/**
* <一句话功能简述> <功能详细描述>
*
* @see [类、类#方法、类#成员]
*/
protected void doConfigConnection()
{
String path = getPropertiesPath();
if (path != null && !path.trim().equals(""))
{
dbUnitHelper.doInit(path);
}
dbUnitHelper.doInit(getProperties());
}
/**
* <一句话功能简述> <功能详细描述>
*
* @return Connection
* @throws Exception 异常
* @see [类、类#方法、类#成员]
*/
protected Connection getConnection()
throws Exception
{
return dbUnitHelper.getJdbcConnection();
}
/**
* 设定是否每次SetUp都清空数据.
*
* @param flag 入参
*/
protected void doCleanInsertEachSetup(boolean flag)
{
dbUnitHelper.doCleanInsertEachSetup(flag);
}
/**
* <一句话功能简述> <功能详细描述>
*
* @see [类、类#方法、类#成员]
*/
protected void onSetUpBeforeTransaction()
{
try
{
super.onSetUpBeforeTransaction();
}
catch (Exception e)
{
e.printStackTrace();
}
doConfigConnection();
String importFile = getImportFilePath();
dbUnitHelper.setImportFileType(importFile.substring(importFile.lastIndexOf(".") + 1));
dbUnitHelper.setImportFilePath(getImportFilePath());
dbUnitHelper.setUp();
}
/**
* <一句话功能简述> <功能详细描述>
*
* @see [类、类#方法、类#成员]
*/
protected void onTearDownInTransaction()
{
try
{
super.onSetUpBeforeTransaction();
}
catch (Exception e)
{
e.printStackTrace();
}
dbUnitHelper.tearDown();
}
protected String[] getConfigLocations()
{
// if (!isAnt)
// {
// Ants.invoke();
// isAnt = true;
// }
setAutowireMode(AUTOWIRE_BY_NAME);
setDefaultRollback(true);
return new String[] {"classpath:application/*.xml", "classpath:application/testApplicationContext.xml"};
}