当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:12:00  来源:本站整理

Spring单元测试[Java编程]

赞助商链接



  本文“Spring单元测试[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

Spring本身便是一个容器,全部的业务对象都是通过Spring容器来管理.Spring的注入特点让我们轻松地解除了类与类之间的耦合性.但是,也给我们写单元测试带来了不少的麻烦,不过这种情形是在没有考虑Spring供应的单元测试工具的情形下才会发生的.

1. 预备需求的jar包.

需求预备spring-mock.jar和naming-factory-dbcp.jar.第一个jar包中包含了Spring供应的单元测试工具类,第二个jar包是供应成立JDBC衔接所需求的类.

2. 担当AbstractTransactionalDataSourceSpringContextTests.

Spring供应了几种基于Junit的单元测试工具类,这里只介绍AbstractTransactionalDataSourceSpringContextTests,其他的请看官方文档.这是一个具有事件的单元测试用例,你可以设置单元测试成功后数据库事件是提交还是回滚,默许为回滚.

在担当类中需求实现getConfigLocations办法,这个办法主如果为了获得Spring的application-context.xml文件.

protected String[] getConfigLocations() {
  String[] config = new String[] {
    "xxx-applicationContext.xml", "xxxx-applicationContext.xml"
  };
  return config;
}

注意,第一,假如利用上面的写法,这些xml文件必须在classpath下;第二,TransactionManager只能定义一个.

3. 写自己的测试用例.

示例代码以下:

public abstract class MyDependencyInjectionSpringContextTests
  extends AbstractTransactionalDataSourceSpringContextTests {
  protected ServiceContext context;
  public MyDependencyInjectionSpringContextTests() {
  }
  /**
  * 重写父类的onSetUpBeforeTransaction办法
  **/
  protected void onSetUpBeforeTransaction() throws Exception {
    super.onSetUpBeforeTransaction();
    //此处可以加入你想举行的统一操作
    ......
    //调用子类的处理
    beforeSetUp();
  }
  protected abstract void beforeSetUp() throws Exception;
  protected String[] getConfigLocations() {
    String[] config = new String[] {
      "service-applicationContext.xml", "dao-applicationContext.xml"
    };
    return config;
  }
}

====================================================================

public class MockServiceTest
  extends MyDependencyInjectionSpringContextTests {
  Mock mock;
  MockService service;
  protected void beforeSetUp() throws Exception {
    //初始化测试需求利用的数据
    mock=new Mock();
    mock.setName("test");
    mock.setType(1);
    service=(MockService) applicationContext.getBean("mockService");
  }
  public void testAddMock() {
      //测试办法
    service.addMock(mock);
    //这里利用的是是hibernate,增添后主键被填充,所以只要判断实体对象的id能否为null便可
    Assert.assertTrue("测试addMock办法失利." mock.getMockId!=null);
  }
  public static void main(String[] args) {
    junit.textui.TestRunner.run(MockServiceTest.class);
  }
}


  以上是“Spring单元测试[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • 在Ubuntu管理iPhone/iPod SpringBoard图标
  • Visual C++ sprintf()函数用法
  • 发扬EJB、Spring思惟将组件化举行到底
  • spring在MVC层办理JPA的缓迟加载问题
  • 用spring简单实现发送邮件
  • 用Spring framework实现按时器功效
  • 关于Struts和Spring两种MVC框架的比较
  • Spring自动装配的学习
  • Spring事件配置的五种办法
  • Spring编程入门十大问题解答
  • Hibernate+Spring+Struts扩大Struts
  • J2EE新手入门之"Spring"名词注释
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .