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

相关文章

Mac系统下卸载JAVA和JDK的步骤

《Mac系统下卸载JAVA和JDK的步骤》JDK是Java语言的软件开发工具包,它提供了开发和运行Java应用程序所需的工具、库和资源,:本文主要介绍Mac系统下卸载JAVA和JDK的相关资料,需... 目录1. 卸载系统自带的 Java 版本检查当前 Java 版本通过命令卸载系统 Java2. 卸载自定

springboot项目中整合高德地图的实践

《springboot项目中整合高德地图的实践》:本文主要介绍springboot项目中整合高德地图的实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一:高德开放平台的使用二:创建数据库(我是用的是mysql)三:Springboot所需的依赖(根据你的需求再

一文详解如何在idea中快速搭建一个Spring Boot项目

《一文详解如何在idea中快速搭建一个SpringBoot项目》IntelliJIDEA作为Java开发者的‌首选IDE‌,深度集成SpringBoot支持,可一键生成项目骨架、智能配置依赖,这篇文... 目录前言1、创建项目名称2、勾选需要的依赖3、在setting中检查maven4、编写数据源5、开启热

SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志

《SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志》在SpringBoot项目中,使用logback-spring.xml配置屏蔽特定路径的日志有两种常用方式,文中的... 目录方案一:基础配置(直接关闭目标路径日志)方案二:结合 Spring Profile 按环境屏蔽关

基于Python实现一个简单的题库与在线考试系统

《基于Python实现一个简单的题库与在线考试系统》在当今信息化教育时代,在线学习与考试系统已成为教育技术领域的重要组成部分,本文就来介绍一下如何使用Python和PyQt5框架开发一个名为白泽题库系... 目录概述功能特点界面展示系统架构设计类结构图Excel题库填写格式模板题库题目填写格式表核心数据结构

Linux系统中的firewall-offline-cmd详解(收藏版)

《Linux系统中的firewall-offline-cmd详解(收藏版)》firewall-offline-cmd是firewalld的一个命令行工具,专门设计用于在没有运行firewalld服务的... 目录主要用途基本语法选项1. 状态管理2. 区域管理3. 服务管理4. 端口管理5. ICMP 阻断

MySQL版本问题导致项目无法启动问题的解决方案

《MySQL版本问题导致项目无法启动问题的解决方案》本文记录了一次因MySQL版本不一致导致项目启动失败的经历,详细解析了连接错误的原因,并提供了两种解决方案:调整连接字符串禁用SSL或统一MySQL... 目录本地项目启动报错报错原因:解决方案第一个:第二种:容器启动mysql的坑两种修改时区的方法:本地

springboot项目中使用JOSN解析库的方法

《springboot项目中使用JOSN解析库的方法》JSON,全程是JavaScriptObjectNotation,是一种轻量级的数据交换格式,本文给大家介绍springboot项目中使用JOSN... 目录一、jsON解析简介二、Spring Boot项目中使用JSON解析1、pom.XML文件引入依

使用vscode搭建pywebview集成vue项目实践

《使用vscode搭建pywebview集成vue项目实践》:本文主要介绍使用vscode搭建pywebview集成vue项目实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录环境准备项目源码下载项目说明调试与生成可执行文件核心代码说明总结本节我们使用pythonpywebv

Windows 系统下 Nginx 的配置步骤详解

《Windows系统下Nginx的配置步骤详解》Nginx是一款功能强大的软件,在互联网领域有广泛应用,简单来说,它就像一个聪明的交通指挥员,能让网站运行得更高效、更稳定,:本文主要介绍W... 目录一、为什么要用 Nginx二、Windows 系统下 Nginx 的配置步骤1. 下载 Nginx2. 解压