网站大量收购闲置独家精品文档,联系QQ:2885784924

Spr每ing本身即是一个返容器.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
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方法失败。

文档评论(0)

zzabc003 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档