码迷,mamicode.com
首页 > 其他好文 > 详细

shop--5.使用Junit进行验证

时间:2018-07-17 16:35:36      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:map   super   设计   text   entity   val   lse   pre   对象   

总体思想

1. DAO层:

主要任务做数据持久层的工作,负责与数据库进行联络的一些任务都封装在此。

DAO层的设计:首先是设计DAO层的接口,然后再Spring的配置文件中定义此接口的实现类,然后就可以在模块中调用此接口来进行数据业务的处理,而不用关心此接口的具体实现类是哪一个,显得结构非常清晰。DAO设计的总体规划需要和设计的表,和实现类之间一一对应。

DAO层所定义的接口里的方法主要是增添改查,以及一些自定义的特殊的对数据库访问的方法。

配置:DAO层的数据源配置,以及有关数据库连接的参数都在Spring的配置文件中进行配置。

 

2. Service层

主要任务负责业务模块的逻辑应用设计

Service层的设计:首先设计接口,再设计实现的类,接着在Spring的配置文件中配置起实现的关联。

优点:封装Service层的业务逻辑有利于通用的业务逻辑的独立性和重复利用性,程序显得非常简洁。

 

3. Controller层

主要任务:负责具体的业务模块流程的控制,在此层里要调用Service层的接口来控制业务流程。

配置:控制的配置也同样在Spring的配置文件中。

具体实现:针对具体的业务流程,会有不同的控制器,我们具体的设计过程中可以将流程进行抽象归纳,设计出可以重复利用的子单元流程模块,这样不仅使得成句结构变得清晰,也大大减少了代码量。

——————————————————————————————————————————————————————————————————————————————————————————————

——————————————————————————————————————————————————————————————————————————————————————————————

1.验证dao层

1)创建AreaDao的接口(里面写各种方法 即是对数据的增删改查)

public interface AreaDao {
    /**
     * @return areaList
     * 列出区域列表
     */
    List<Area> queryArea();
}

 

2)创建AreaDao.xml(在mapper下建,里面写的都是sql语句,关联数据库,是对数据进行实际的操作)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper 
  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ryanxu.o2o.dao.AreaDao">
  <select id="queryArea" resultType="com.ryanxu.o2o.entity.Area">
   SELECT area_id, area_name, priority, create_time, last_edit_time FROM tb_area 
   ORDER BY priority DESC
  </select>
</mapper>

3)在test/java/com/ryanxu/o2o下建立BaseTest类(配置Spring和Junit整合,Junit启动时加载springIOC容器)

/**
 * 配置spring和junit整合,junit启动时加载springIOC容器
 *
 */
//整合起来的类
@RunWith(SpringJUnit4ClassRunner.class)
//告诉junit spring配置文件的位置 就是src/main/resources/spring
@ContextConfiguration({"classpath:spring/spring-dao.xml","classpath:spring/spring-service.xml"})
public class BaseTest {
    
}

4)创建AreaDaoTest类 继承BaseTest类

public class AreaDaoTest extends BaseTest{
    @Autowired
    private AreaDao areaDao;
    
    @Test
    public void testQueryArea() {
        List<Area> areaList = areaDao.queryArea();
        assertEquals(2, areaList.size());
    }
}

验证Service层

1)创建AreaService接口

public interface AreaService {
    List<Area> getAreaList();
}

2)service的实现类 AreaServiceImpl

@Service
public class AreaServiceImpl implements AreaService{
    @Autowired
    private AreaDao areaDao;
    @Override
    public List<Area> getAreaList() {
        
        return areaDao.queryArea();
    }

}

3)AreaServiceTest

public class AreaServiceTest extends BaseTest{
    @Autowired
    private AreaService areaService;
    @Test
    public void testGetAreaList() {
        List<Area> areaList = areaService.getAreaList();
        assertEquals("北区", areaList.get(0).getAreaName());
    }
}

验证Controller层

1)在web.superadmin下创建AreaController类

@Controller
@RequestMapping("/superadmin")
public class AreaController {
    @Autowired
    private AreaService areaService;
    @RequestMapping(value = "/listarea",method = RequestMethod.GET)
    //将返回对象自动转换为json对象给前端
    @ResponseBody
    private Map<String, Object> listArea(){

        Map<String, Object> modelMap = new HashMap<String,Object>();
        List<Area> list = new ArrayList<Area>();
        try {
            list = areaService.getAreaList();
            modelMap.put("rows", list);
            modelMap.put("total", list.size());
        }catch (Exception e) {
            e.printStackTrace();
            modelMap.put("success", false);
            modelMap.put("errMsg", e.toString());
        }
return modelMap;
    }
}

2)使用postman 获取json数据

技术分享图片

 

 下面附上postman的下载链接

链接: https://pan.baidu.com/s/1wkUG_UtFvuLyVky4y4inaQ 密码: rsty

shop--5.使用Junit进行验证

标签:map   super   设计   text   entity   val   lse   pre   对象   

原文地址:https://www.cnblogs.com/windbag7/p/9322994.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!