hybris学习笔记 Trail Testing the DAO

               

前面的练习中,通过xxx-items.xml 定义了Data Model,在hMC管理界面中update系统(以便更新数据库表的定义),添加数据(popuulate the data model)。

这之后的练习中,通过Java代码来访问数据。


这个章节中,我们将通过“测试驱动开发“Test Driven Development, or TDD的方式,测试前面练习的成果。

准备工作,在hybris管理界面中初始化了 junit tenent

编写DAO的interface代码

编写DAO的测试代码( 注意,这里是先编写测试代码,后编写实现代码~~~~~~~~)

编写DAO的实现代码 - 这里使用了hybris' Flexible Search Query ,具体的Query语法要看培训的ppt讲义,或者是hybris WiKi网站

执行junit测试


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

上面的测试将失败,因为在Integration Test代码中,对StadiumDAO的调用,不是在我的测试代码中生成该对象并调用,而是借助Spring框架来生成对象,然后我来用。

具体的测试代码片段如下:

 @Resource   //如果将该注释应用于一个字段或方法,那么初始化应用程序组件时容器(Spring)将把所请求资源的一个实例注入其中。

 private StadiumDAO stadiumDAO

       @Test
 public void stadiumDAOTest()
 {
  List<StadiumModel> stadiumsByCode = stadiumDAO.findStadiumsByCode(STADIUM_NAME);  //注意这里没有去生成 stadiumDAO对象就直接使用了

具体的DefaultStadiumDAO实现代码如下:
  @Component(value = "stadiumDAO")
 public class DefaultStadiumDAO implements StadiumDAO

怎么让hybris/Spring来生成该对象呢?
英文:This is telling Spring that we have a bean called stadiumDAO that it can use for wiring. However we need to tell Spring that it should browse this package to find the annotation. To do this we need to add a  context:component-scan  tag to cuppy-trail's application context, as described by Spring  here in their discussion on the component-scan tag

中文:修改hybrpis的cupptytail-spring.xml文件,在Spring框架中配置bean - DAO实现类(代码)
  <context:component-scan base-package="de.hybris.platform.cuppytrail"/>

参考:Spring容器组建注解@Component和Resouces实现完全注解配置

-------------------------------------------------
我的问题:
为什么这个 stadiumDAO需要做类扫描,而在后面的练习中用到的stadiumService就不需要扫描,而是用bean定义呢?为什么有两种方法?不同在哪里呢?
自言自语:可能的回答是DefaultStadiumService 的代码中没有 @Component(value = "xxxxx") 
 public class DefaultStadiumService implements StadiumService

下面是stadiumService的Spring bean生命:
 <alias name="defaultStadiumService" alias="stadiumService"/>
    <bean id="defaultStadiumService" class="de.hybris.platform.cuppytrail.impl.DefaultStadiumService">
        <property name="stadiumDAO" ref="stadiumDAO"/>
    </bean>

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

Java Mockup测试参考: 5分钟了解Mockitto

           

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值