Spring Controller单元测试】的更多相关文章

SpringMVC controller测试较简单,从功能角度划分,可分为两种.一种是调用请求路径测试,另一种是直接调用Controller方法测试. 调用请求路径测试 通过请求路径调用,请求需要经过拦截器,再到对应的Controller方法处理 被测试代码示例 import com.agoura.agoura.entity.Members; import com.agoura.agoura.service.MembersService; import org.springframework.b…
简介 Controller层的单元测试可以使得应用的可靠性得到提升,虽然这使得开发的时间有所增加,有得必失,这里我认为得到的比失去的多很多. Sping MVC3.2版本之后的单元测试方法有所变化,随着功能的提升,单元测试更加的简单高效. 这里以4.1版本为例,记录Controller的单元测试流程.非常值得参考的是Spring MVC Showcase(https://github.com/spring-projects/spring-mvc-showcase),它当前的版本使用的是4.1.0…
Spring Boot单元测试(Mock) Java个人学习心得 2017-08-12 16:07 Mock 单元测试的重要性就不多说了,我这边的工程一般都是Spring Boot+Mybatis(详情可参看<Spring boot+MyBatis+PageHelper+JSON>),现在写一下Spring Boot下怎么测试Controller.Service. Controller测试 本文就简单一点,写一个Hello接口. Controller HTTP请求测试: 既然是测试Contro…
关于spring MVC单元测试常规的方法则是启动WEB服务器,测试出错 ,停掉WEB 改代码,重启WEB,测试,大量的时间都浪费在WEB服务器的启动上,下面介绍个实用的方法,spring MVC单元测试. package com.spring; import java.io.FileNotFoundException; import java.io.IOException; import java.util.ArrayList; import java.util.List; import ja…
测试在软件开发中的重要性不言而喻.测试的主要目的是尽早发现错误,最好是在代码开发的同时.逻辑上认为,错误发现的越早,修复的成本越低.如果在编程中发现错误,可以立即更改代码:如果软件发布后,客户发现错误所需要的修复成本会很大. 在软件开发中有许多不同的测试,其中两个是单元测试和集成测试.通常从单元测试开始测试类中的单个方法,然后进行集成测试,以测试不同的模块是否可以无缝协同工作. 本篇博客中的示例使用JUnit测试框架以及Spring test模块.Spring test模块中的API可用于单元测…
Spring 框架提供了一个专门的测试模块(spring-test),用于应用程序的单元测试. 在 Spring Boot 中,你可以通过spring-boot-starter-test启动器快速开启和使用它. 在pom.xml文件中引入maven依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artif…
引言 是否在程序运行时使用单元测试是衡量一个程序员素质的一个重要指标.使用单元测试既可以让我检查程序逻辑的正确性还可以让我们减少程序测试的BUG,便于调试可以提高我们写程序的效率.以前我们做单元测试的时候使用的都是JUnit,只需要引入相关的jar包即可.可是我们在使用Spring的时候是不是也可以使用单元测试呢,答案是肯定的.Spring自己整合了JUint,极大的方便了我们的程序开发. 1.引入相关环境 如果我们想要使用Spring提供的单元测试功能,我们除了引入Spring的相关环境我们还…
当jQuery 发送ajax请求需要传递多个参数时,如果参数过多,Controller接收参数时就需要定义多个参数,这样接口方法会比较长,也不方便.Spring可以传递对象参数,将你需要的所有查询条件定义成对象的属性,前台给对象赋值,后台Controller接收时只需要接收对象参数即可,这样代码就变得非常简洁.以下是示例代码: 1.对象参数QueryBean 就是普通的java类,定义你需要的属性,生产getter.setter方法即可.例如我查询时需要传递用户名称name.用户密码passwo…
1.spring Controller @RestController @RequestMapping(value = "/basic/task") public class TaskController { @Autowired private TaskServiceImpl taskService; @PostMapping(value = "/add") public ResponseEntity addTask(@RequestBody TaskEntity…
想要获取context需要先熟悉spring是怎么在web容器中启动的,spring启动过程其实就是其IOC容器的启动过程,对于web程序,IOC容器启动过程即是建立上下文的过程 spring启动过程: 对于一个web应用,部署在web容器中,web容器提供其一个全局的上下文环境,这个上下文就是ServletContext,为后面的spring IOC容器提供宿主环境: 在web.xml中会提供有contextLoaderListener;在web容器启动时,会触发容器初始化事件,此时conte…
如果spring 4.3.18这个版本的spring要使用junit,需要使用junit的junit-4.12之上的版本.使用这个版本junit的时 候需要引入hamcrest-all的jar包.之前的junit版本是不需要单独引入这个jar包的,因为之前版本把hamcrest-all的 jar包集成进来了,从4.12开始,该jar包不集成,需要单独的引入. /** * 使用junit进行单元测试 */ public class JunitTest { @Test public void tes…
一.创建Controller 一个方法是用传统IO来下载文件,一个是NIO下载文件 @Controller public class FileController { private Logger log = LoggerFactory.getLogger(FileController.class); @RequestMapping(value="/download/oldio}", method = RequestMethod.GET) public void download(Ht…
(一).JUnit介绍 JUnit是Java中最有名的单元测试框架,多数Java的开发环境都已经集成了JUnit作为单元测试的工具.好的单元测试能极大的提高开发效率和代码质量. Maven导入junit.sprint-test .json-path相关测试包,并配置maven-suerfire-plugin插件,编辑pom.xml <dependencies> <!-- Test Unit --> <dependency> <groupId>junit<…
一般而言,我们写好一个模块后,会对其进行单元测试,再集成到现有的系统中. 但是呢~针对Controller.Service.Dao三层来说,我们最常的是对Service和Dao进行单元测试.然而Controller的测试,很多人还是启动Tomcat,使用Postman进行测试,这样不仅需要等待很长的编译部署时间,而且无法逐个Controller功能进行单独测试,因此特意总结Controller层的单元测试.顺便说下,Postman挺好用的,只是我们仍然需要启动tomcat,有点浪费时间. 那么,…
回顾并详细说明一下在在之前章节中的中使用的@Controller.@RestController.@RequestMapping注解.如果您对Spring MVC不熟悉并且还没有尝试过快速入门案例,建议先看一下之前的内容. 下面我们尝试使用Spring MVC来实现一组对User对象操作的RESTful API,配合注释详细说明在Spring MVC中如何映射HTTP请求.如何传参.如何编写单元测试. * RESTful API具体设计如下:* 请求类型 URL 功能说明 GET /users…
controller 测试 不使用其他api接口测试工具 一般而言,我们写好一个模块后,会对其进行单元测试,再集成到现有的系统中. 但是呢~针对Controller.Service.Dao三层来说,我们最常的是对Service和Dao进行单元测试.然而Controller的测试,很多人还是启动Tomcat,使用Postman进行api测试,这样不仅需要等待很长的编译部署时间,而且无法逐个Controller功能进行单独测试,因此特意总结Controller层的单元测试.顺便说下,Postman挺…
1,maven创建web工程 2,导入相关依赖 pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.…
Demo代码: @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = "classpath*:/META-INF/spring/all-beans.xml") public class SomeRemoteServiceTest { @Resource(name = "someRemoteService") RemoteService service; @Test publ…
web工程spring+ibatis在本地做单元测试,用例如下: package wanghongye; import org.junit.Before; import org.junit.Test; import richinfo.dbcomponent.service.impl.SqlMapClientBeanFactory; import richinfo.mms.bean.req.MmsDelRecordReq; import richinfo.mms.dao.MmsRecordDao;…
原因还未查证: http://sunjun041640.blog.163.com/blog/static/256268322014127113844746/ 在使用spring mvc时,实际上是两个spring容器: 1,dispatcher-servlet.xml 是一个,我们的controller就在这里,所以这个里面也需要注入属性文件 org.springframework.web.servlet.DispatcherServlet 这里最终是使用WebApplicationContex…
1.直接把表单的参数写在Controller相应的方法的形参中,适用于get方式提交,不适用于post方式提交.若"Content-Type"="application/x-www-form-urlencoded",可用post提交        url形式:http://localhost:8080/SSMDemo/demo/addUser1?username=lixiaoxi&password=111111 提交的参数需要和Controller方法中的入…
Junit这种老技术,现在又拿出来说,不为别的,某种程度上来说,更是为了要说明它在项目中的重要性.凭本人的感觉和经验来说,在项目中完全按标准都写Junit用例覆盖大部分业务代码的,应该不会超过一半. 刚好前段时间写了一些关于SpringBoot的帖子,正好现在把Junit再拿出来从几个方面再说一下,也算是给一些新手参考了. 那么先简单说一下为什么要写测试用例1. 可以避免测试点的遗漏,为了更好的进行测试,可以提高测试效率2. 可以自动测试,可以在项目打包前进行测试校验3. 可以及时发现因为修改代…
Spring Boot 的测试类库 Spring Boot 提供了许多实用工具和注解来帮助测试应用程序,主要包括以下两个模块. spring-boot-test:支持测试的核心内容. spring-boot-test-autoconfigure:支持测试的自动化配置. 开发进行只要使用 spring-boot-starter-test 启动器就能引入这些 Spring Boot 测试模块,还能引入一些像 JUnit, AssertJ, Hamcrest 及其他一些有用的类库,具体如下所示. JU…
一.问题概述 spring boot项目.单元测试的时候,我发现,总是会使用application.properties的内容,而该文件里,一般是我的开发时候的配置. 比如上图中,dev是开发配置,production是生产环境的配置,test是测试环境的配置. 有时候,需要直接在某些环境上跑单元测试. 而默认的单元测试策略,总是使用了application.properties. 二.解决 在单元测试的类上,加上如下注解即可: 参考: http://dreamhack.it/spring/20…
关于Spring boot 之前没有用Spring的时候是用的MockMvc,做接口层的测试,原理上就是加载applicationContext.xml文件,然后模拟启动各种mybatis\连接池等等. 后来web工程改造成了Spring boot,首先发生变化的就是配置文件,原来的xml改成了proerties或者yml.另外,原来的http接口改成了dubbo,接口层的测试就更困难了. 所以单元测试改成了直接对service层的测试,即按照原来的模式,模拟启动applicationConte…
前言:最近在做一个项目,想要在 controller 层直接通过注解 @Value("")来获取 properties 里面配置的属性. 这个其实和 springmvc.spring 两个容器相关.controller 是在 springmvc 容器中,所以需要看看 springmvc 的配置文件中是否有配置 properties 文件. 经设置,即可在 controller 层使用 @Value 了. <!-- 加载配置文件,controller中需要使用@Value得到配置值…
主要步骤 1. 在工程的pom文件中增加spring-test的依赖: <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>${spring.version}</version> </dependency> 2. 使用springframework提供的单元测试 新建测…
以前的java web项目,需要在web.xml中定义servlet,对应不同的请求,而在spring项目中,我们用controller定义了各种各样的servlet(当然不包括DispatcherServlet),那么controller是servlet吗? servlet的本质其实也是一个java bean,controller是对servlet的封装,底层依旧是servlet.…
Servlet方案 在Controller的方法的参数列表中,添加一个javax.servlet.http.HttpSession类型的形参.spring mvc会 自动把当前session对象注入这个参数,此后可以使用setAttribute(String key, Object value)将数据缓存到session,使用removeAttribute( String key)将指定的数据从session缓存中移除. package cn.sinobest.jzpt.demo.login.w…
技术交流群:233513714  1.直接把表单的参数写在Controller相应的方法的形参中,适用于get方式提交,不适用于post方式提交.若"Content-Type"="application/x-www-form-urlencoded",可用post提交 url形式:http://localhost:8080/SSMDemo/demo/addUser1?username=lixiaoxi&password=111111 提交的参数需要和Contr…