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. 洛咕 P3756 [CQOI2017]老C的方块

    四染色,贼好想 一个弃疗图形刚好对应一个红-绿-黄-粉色路线(不要吐槽颜色) 就是裸的最小割,建图傻逼懒得写了 #include<bits/stdc++.h> #define il inl ...

  2. vue 监听页面宽度变化 和 键盘事件

    vue 监听页面窗口大小 export default { name: 'Full', components: { Header, Siderbar }, data () { return { scr ...

  3. [C#]使用Label标签控件模拟窗体标题的移动及窗体颜色不断变换

    本文为原创文章.源代码为原创代码,如转载/复制,请在网页/代码处明显位置标明原文名称.作者及网址,谢谢! 开发工具:VS2017 语言:C# DotNet版本:.Net FrameWork 4.0及以 ...

  4. Egret(白鹭引擎)——“TypeError: Cannot read property 'asCom' of null”

    前言 相信我,这个错误新手都不陌生:TypeError: Cannot read property 'asCom' of null 还有,一定要看我上一篇,哦不(人家应该是报了这个错,才找到看到这篇文 ...

  5. cocos2d-x学习之路(三)——精灵与动作

    这里我们来看看所有游戏引擎中都会出现的一个重要的概念——精灵

  6. A1006. Sign In and Sign Out(25)

    25/25,一遍过了,很开心. #include<bits/stdc++.h> using namespace std; struct record{ string id; string ...

  7. 微软职位内部推荐-Sr. SW Engineer for Privacy Id

    微软近期Open的职位: Job posting title: Senior Software Engineer for Privacy Identification Profession: Engi ...

  8. MongoDB 安装教程

    前言: MongoDB是一个基于分布式文件存储的数据库.由C++旨在为WEB应用提供可扩展的高性能数据存储解决方案. 官方网站:https://www.mongodb.com/ 本次教程只针对wind ...

  9. centos运行C程序

    gcc -o Hello Hello.c 编译成可执行文件 ./Hello 运行 win上也是一样

  10. wpf-典型的mvvm模式通用中小型管理系统框架0

    之前就一直在想着写这么一系列博客,将前段时间(也算有点久了)自己编写的一套框架分享下,和园子里的诸位大牛交流交流,奈何文思枯竭,提键盘而无从敲起,看来只有coding时才不会有这种裤子都脱了,才发现对 ...