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"};
       
    }

 

原创粉丝点击