Spring--对业务层的UnitTest

2008-02-23 10:14:33来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

磨蹭了很久,终于开始用UnitTest。原因一是和大家一样,不想晚上做噩梦,二是在Spring下对业务层TDD,能够不需要重启Tomcat,能够完全摆脱对显示层的依赖,而专注于业务层的开发。

但是我们也只在业务层使用UnitTest,因为显示层至今没有什么好的UnitTest方法,而我们的业务逻辑又严格封装在业务层,Controler层只做个组装分派的基本动作,没必要花大力气去测试。

在Spring下的测试很简单,写一个父类执行ApplicationContext的载入,并用DbUnit负责测试前后的数据备份和恢复。而子类可以通过成员变量控制父类的行为。

源码如下:

public class DAOTestCase extends TestCase

{

    protected ClassPathXMLApplicationContext ctx;

    protected String[] contextFiles = null;

    protected DatabaseConnection dbunitConn;

    protected boolean needBackup = false;

    protected String xmlFilePath = null;

    protected String[] tableNames = null;

    



    public void setUp() throws Exception

    {

        if(contextFiles==null)

        {

                 contextFiles = new String[]{"applicationContext-Hibernate.xml";

        }

        this.ctx = new ClassPathXmlApplicationContext(contextFiles);



        DbUtil dbUtil = new DbUtil(ctx);

        dbunitConn = new DatabaseConnection(dbUtil.getConn(), "LH");



        if (needBackup)

        {

            if (xmlFilePath == null)

                xmlFilePath = "test/dbunitData/myTestData.xml";



            if (tableNames != null)

            {

                ITableFilter filter = new DatabaseSequenceFilter(dbunitConn, tableNames);

                IDataSet dataset = new FilteredDataSet(filter, dbunitConn.createDataSet());



                File f_file = new File(xmlFilePath);

                new File(f_file.getParent()).mkdirs();

                XmlDataSet.write(dataset, new FileOutputStream(f_file));



            }

            else

            {

                throw new Exception("your choice backup data but no table names asign");

            }



        }

    }



    public void tearDown() throws Exception

    {

        IDataSet dataSet = new XmlDataSet(new FileInputStream(xmlFilePath));

        DatabaseOperation.REFRESH.execute(dbunitConn, dataSet);

        super.tearDown();

    }

}

上一篇: Struts DataSource
下一篇: Java的建造设计模式

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:读者写者问题之写者优先(java)

下一篇:Java的建造设计模式