Controller测试和一般其他层的junit测试可以共用一个BaseTest

一、BaseTest如下

 @RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration("src/main/resouces")//指定要加载的测试用的配置文件的根目录,其实就是下面的classpath路径
@ContextConfiguration(locations={"classpath:Spring-config.xml","classpath:Spring-servlet.xml"})
public class BaseTest{
protected Logger log = LoggerFactory.getLogger(getClass()); @Test
public void test(){
System.out.pringln(|"aaa");
}
}

上面这个基类要注意两点:

1、

@WebAppConfiguration("src/main/resouces")

用来指定要加载的测试用的配置文件的根目录就是我们的正常开发目录,而不是maven项目自动生成的 /src/test/resouces 目录

2、

@ContextConfiguration(locations={"classpath:Spring-config.xml","classpath:Spring-servlet.xml"})

其中

"classpath:Spring-config.xml" 是后端 spring的配置文件,当然其中还可以引用包括各种其他配置文件,如dataSource.xml,mybatis.xml等
"classpath:Spring-servlet.xml" 是前端控制器的配置文件,主要是前台展示的各种资源向后台请求的配置,包括各种静态资源的请求,拦截等配置(如果不测试Controller层,貌似这个前端的配置文件可以不引入)

二、Controller层的测试如下

 public class  UserControllerTest extends BaseTest
{ @Autowired
protected UserController userController; //注入我们要测试的某个Controller的bean protected MockMvc mockMvc; //这个是Controller测试必须的 @Before() //这个方法在每个方法执行之前都会执行一遍
public void setup()
{
//括号里面填写我们要测试的 Controller的 bean名称,就是前面注入的成员变量
mockMvc = MockMvcBuilders.webAppContextSetup(userController).build(); //初始化MockMvc对象
} @Test
public void myTest() throws Exception
{
String responseString = mockMvc.perform
(
get("/user/showUser1") //模拟请求的url,请求的方法是get
//get("/user/showUser2") //请求的url,请求的方法是get
.contentType(MediaType.APPLICATION_FORM_URLENCODED)//数据的格式
.param("id","1") //添加请求参数(可以添加多个) 这里是要查询id为1的用户的信息
//.param("id","3") //添加参数(可以添加多个)
)
.andExpect(status().isOk()) //期望返回的状态是200
.andDo(print()) //控制台打印出请求和相应的内容
.andReturn().getResponse().getContentAsString(); //将相应的Controller方法返回的数据转换为字符串
System.out.println("-----返回的json = " + responseString);//控制台打印返回的内容
} }

ssm框架中Controller层的junit测试_我改的更多相关文章

  1. 深入理解--SSM框架中Dao层,Mapper层,controller层,service层,model层,entity层都有什么作用

    SSM是sping+springMVC+mybatis集成的框架. MVC即model view controller. model层=entity层.存放我们的实体类,与数据库中的属性值基本保持一致 ...

  2. SSM框架中各层作用

    SSM是sping+springMVC+mybatis集成的框架. MVC即model view controller. model层=entity层.存放我们的实体类,与数据库中的属性值基本保持一致 ...

  3. SSM框架中各层的含义和联系

    一.pojo层 也有人称其为model.domain.bean等,pojo层是对应的数据库表的实体类. 二.1.持久层:Dao层(Mapper) Dao(Data access object)层,称为 ...

  4. SSM框架中mapper层,增删改查,如何实现

    1.批量修改 <!-- 批量修改 MySQL--> <update id="updateBatch" parameterType="java.lang. ...

  5. SSM框架中,controller的action返回参数给vue.js

    在SSM框架中,controller的action中,返回的是视图,即jsp页面或是ModelAndView,若是通过axios给vue传值的话,需要转换为字符串或是user实体类对象. 使用@Res ...

  6. 详解intellij idea搭建SSM框架(spring+maven+mybatis+mysql+junit)(下)

    在上一篇(详解intellij idea 搭建SSM框架(spring+maven+mybatis+mysql+junit)(上))博文中已经介绍了关于SSM框架的各种基础配置,(对于SSM配置不熟悉 ...

  7. SSM框架中的前后端分离

    认识前后端分离 在传统的web应用开发中,大多数的程序员会将浏览器作为前后端的分界线.将浏览器中为用户进行页面展示的部分称之为前端,而将运行在服务器,为前端提供业务逻辑和数据准备的所有代码统称为后端. ...

  8. 在SSM框架中我设置拦截器filter不能通过注解获取到实现类

    我在用注解注入实现类的时候,出现了这样的错误:如以下截图: 这个地方报出的错误是说明我的一个接口类型的类没有获取到,后来我就想要是我的实现类没有获取到那么我就直接new一个实现类然后再进行调用就会出现 ...

  9. JAVA使用log4j(另SSM框架中使用log4j)

    1.引入jar包 log4j-1.2.13.jar 2.src下建立配置文件:log4j.properties #不+All,只写后一种LOG log4j.rootLogger =ALL,system ...

随机推荐

  1. [Python]-pip-ReadTimeoutError: Read timed out 问题

    问题描述 就是在安装Python包的时候,由于时间太长引起的超时问题 问题解决 第一个办法是更改源地址:在 ~/.pip/ 下创建文件 pip.conf(如果还没有的话), 模版如下: [global ...

  2. Android开发——Android进程保活招式大全

    )前台进程(Foreground process),即用户当前操作所必需的进程,通常数量不多.举例如下: //拥有用户正在交互的 Activity(已调用 onResume()) //拥有某个 Ser ...

  3. stl源码剖析 详细学习笔记stack queue

    // //  stack.cpp //  笔记 // //  Created by fam on 15/3/15. // // //---------------------------15/03/1 ...

  4. Redux系列01:从一个简单例子了解action、store、reducer

    其实,redux的核心概念就是store.action.reducer,从调用关系来看如下所示 store.dispatch(action) --> reducer(state, action) ...

  5. GitHub 新手教程 二,Windows 版 GitHub 安装

    1,下载地址: https://git-scm.com/download/ 2,信息: 3,选择安装位置: 例如:d:\soft\git 4,选择组件: 5,创建开始菜单: 6,选择Git使用的默认编 ...

  6. "Regressing Robust and Discriminative 3D Morphable Models with a very Deep Neural Network" 解读

    简介:这是一篇17年的CVPR,作者提出使用现有的人脸识别深度神经网络Resnet101来得到一个具有鲁棒性的人脸模型. 原文链接:https://www.researchgate.net/publi ...

  7. B1015 德才论 (25 分)

    19/25 #include<bits/stdc++.h> using namespace std; /* 1.de>=H && cai>=H 2.de> ...

  8. Python机器学习/LinearRegression(线性回归模型)(附源码)

    LinearRegression(线性回归) 2019-02-20  20:25:47 1.线性回归简介 线性回归定义: 百科中解释 我个人的理解就是:线性回归算法就是一个使用线性函数作为模型框架($ ...

  9. 剑指offer:二叉树的深度

    题目描述: 输入一棵二叉树,求该树的深度.从根结点到叶结点依次经过的结点(含根.叶结点)形成树的一条路径,最长路径的长度为树的深度. 解题思路: 这道题也是递归的思路,比较简单. 做的过程中遇到的一个 ...

  10. delphi XE的字符串处理

    最近用delphi xe做了个东西,因为以前一直使用Delphi 7做开发,delphi 7 到delphi XE有了很大的变化,最大的变化就是对Unicode的支持,所以刚开始使用DELPHI XE ...