SSM项目之商铺系统-各层的测试(三)

2024-02-18 02:32

本文主要是介绍SSM项目之商铺系统-各层的测试(三),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

我们针对Area(地区)表进行测试。我们取出area表中的所有信息,通过juint来完成测试

第一步:给数据表添加数据。

我们测试查询语句:

      select * from tb_area
      ORDER BY priority DESC //降序输出area表中所有信息

第二步:写dao层接口。

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

 配置mapper映射文件 :

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="storepro.dao.AreaDao"><select id="queryArea" resultType="area">select * from tb_areaORDER BY priority DESC</select>
</mapper>

注意namespace必须相同(经过测试mapper文件不必和dao层接口名称相同

我们测试要使用junit,我们先看下怎么使用。

这是junit的包我们看下BaseTest


//告诉spring通过SpringJUnit4ClassRunner.class来跑
@RunWith(SpringJUnit4ClassRunner.class)
//告诉junit spring 配置文件的位置
@ContextConfiguration({"classpath:spring/spring-dao.xml","classpath:spring/spring-service.xml"})//不能使用通配符,测试了
public class BaseTest {}

这个类中使用了两个注解,只要就是完成在测试前对spring的装配,这样完成后,我们要测试的dao层等类只需要继承这个类就能完成这些操作。 

dao层的测试:

1.建立dao层测试类

//继承后每次加载都会加载spring-dao的配置文件
public class AreaDaoTest extends BaseTest{@Autowiredprivate AreaDao areaDao;@Testpublic void testQueryArea(){List<Area> areaList=areaDao.queryArea();assertEquals(2,areaList.size());}}

我们通过mapper文件和dao层接口实现了调用queryArea方法得到了List,我们通过判断长度是否为2来确定dao层是否正确

注意:我们看这句   

@Autowired
    private AreaDao areaDao;

我们之前并没有装配这个类,但是现在却直接可以自动装配,这是通过mapper映射的方式,直接将dao层接口实现了,并且可以直接使用注解装配

引出:除了上面那种情况,如果一个类中有另一个类属性,那么被包含的属性必须被装配,不管使用注解还是xml方式。

测试结果:正确说明我们的dao层没任何问题

测试service层:

1.先写出service层的接口和接口实现

接口:

public interface AreaService {//获取Area的列表List<Area>  getAreaList();
}

接口实现:

@Service
public class AreaServiceImpl implements AreaService {@Autowired//这里的areaDao由mapper文件自动生成对象并注入ioc容器,所以不需要在AreaDao中注解它为beanprivate AreaDao areaDao;@Overridepublic List<Area> getAreaList() {return areaDao.queryArea();}
}

junit测试:

public class AreaServiceTest extends BaseTest {@Autowiredprivate AreaService areaService;@Testpublic void testGetArealList(){List<Area> areaList =areaService.getAreaList();Assert.assertEquals("西苑",areaList.get(0).getAreaName());}
}

我们通过判断列表第一个字符的名字是不是等于我们想要的。

注意: 

  @Autowired
    private AreaService areaService;

这句的装配使用的是接口类型却使用了实现类AreaServiceImpl的方法,因为我们在实现类的上面加了@Servcie注解,这样可以直接使用接口类型。(不止service,@controller等也可以)

web层测试:


@Controller//注解装配它
@RequestMapping("/superadmin")//注解声明这个类的url根目录
public class AreaController {@Autowiredprivate AreaService areaService;@RequestMapping(value = "/listarea", method = RequestMethod.GET)//声明这个类的这个方法的子目录和请求数据方法@ResponseBody//通过这个注解声明返回类型为jsonprivate Map<String, Object> listArea() {Map<String, Object> modelMap = new HashMap<String, Object>();List<Area> list = new ArrayList<Area>();list = areaService.getAreaList();try {modelMap.put("rows", list);modelMap.put("totals", list.size());} catch (Exception e) {modelMap.put("success", false);modelMap.put("errMsg", e.toString());e.printStackTrace();}return modelMap;}
}

我们打开tomcat输入相应的网址。

结果如图:成功 

这篇关于SSM项目之商铺系统-各层的测试(三)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/719766

相关文章

vite搭建vue3项目的搭建步骤

《vite搭建vue3项目的搭建步骤》本文主要介绍了vite搭建vue3项目的搭建步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1.确保Nodejs环境2.使用vite-cli工具3.进入项目安装依赖1.确保Nodejs环境

idea+spring boot创建项目的搭建全过程

《idea+springboot创建项目的搭建全过程》SpringBoot是Spring社区发布的一个开源项目,旨在帮助开发者快速并且更简单的构建项目,:本文主要介绍idea+springb... 目录一.idea四种搭建方式1.Javaidea命名规范2JavaWebTomcat的安装一.明确tomcat

pycharm跑python项目易出错的问题总结

《pycharm跑python项目易出错的问题总结》:本文主要介绍pycharm跑python项目易出错问题的相关资料,当你在PyCharm中运行Python程序时遇到报错,可以按照以下步骤进行排... 1. 一定不要在pycharm终端里面创建环境安装别人的项目子模块等,有可能出现的问题就是你不报错都安装

linux系统中java的cacerts的优先级详解

《linux系统中java的cacerts的优先级详解》文章讲解了Java信任库(cacerts)的优先级与管理方式,指出JDK自带的cacerts默认优先级更高,系统级cacerts需手动同步或显式... 目录Java 默认使用哪个?如何检查当前使用的信任库?简要了解Java的信任库总结了解 Java 信

uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)

《uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)》在uni-app开发中,文件上传和图片处理是很常见的需求,但也经常会遇到各种问题,下面:本文主要介绍uni-app小程序项目中实... 目录方式一:使用<canvas>实现图片压缩(推荐,兼容性好)示例代码(小程序平台):方式二:使用uni

MyCat分库分表的项目实践

《MyCat分库分表的项目实践》分库分表解决大数据量和高并发性能瓶颈,MyCat作为中间件支持分片、读写分离与事务处理,本文就来介绍一下MyCat分库分表的实践,感兴趣的可以了解一下... 目录一、为什么要分库分表?二、分库分表的常见方案三、MyCat简介四、MyCat分库分表深度解析1. 架构原理2. 分

Oracle数据库在windows系统上重启步骤

《Oracle数据库在windows系统上重启步骤》有时候在服务中重启了oracle之后,数据库并不能正常访问,下面:本文主要介绍Oracle数据库在windows系统上重启的相关资料,文中通过代... oracle数据库在Windows上重启的方法我这里是使用oracle自带的sqlplus工具实现的方

linux查找java项目日志查找报错信息方式

《linux查找java项目日志查找报错信息方式》日志查找定位步骤:进入项目,用tail-f实时跟踪日志,tail-n1000查看末尾1000行,grep搜索关键词或时间,vim内精准查找并高亮定位,... 目录日志查找定位在当前文件里找到报错消息总结日志查找定位1.cd 进入项目2.正常日志 和错误日

在.NET项目中嵌入Python代码的实践指南

《在.NET项目中嵌入Python代码的实践指南》在现代开发中,.NET与Python的协作需求日益增长,从机器学习模型集成到科学计算,从脚本自动化到数据分析,然而,传统的解决方案(如HTTPAPI或... 目录一、CSnakes vs python.NET:为何选择 CSnakes?二、环境准备:从 Py

基于 Cursor 开发 Spring Boot 项目详细攻略

《基于Cursor开发SpringBoot项目详细攻略》Cursor是集成GPT4、Claude3.5等LLM的VSCode类AI编程工具,支持SpringBoot项目开发全流程,涵盖环境配... 目录cursor是什么?基于 Cursor 开发 Spring Boot 项目完整指南1. 环境准备2. 创建