maven依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
目录结构
Controller
package com.example.demo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.Map;
/**
* @description:
* @author: Yejunwei
* @date: Created in 14:33 2017/10/19
*/
@RestController
@RequestMapping("test")
public class BaseController {
private static Logger logger = LoggerFactory.getLogger(BaseController.class);
@RequestMapping(value = "get",method = RequestMethod.GET)
public Map getMap(){
Map map = new HashMap(1);
map.put("test", "test");
return map;
}
}
对应的测试类
package com.example.demo;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.internal.Classes;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringBootConfiguration;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.http.MediaType;
import org.springframework.mock.web.MockHttpServletRequest;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.context.web.WebAppConfiguration;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.MockMvcBuilder;
import org.springframework.test.web.servlet.MvcResult;
import org.springframework.test.web.servlet.RequestBuilder;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import org.springframework.web.context.WebApplicationContext;
import javax.servlet.ServletContext;
import static org.junit.Assert.*;
/**
* @description:
* @author: Yejunwei
* @date: Created in 14:36 2017/10/19
*/
@RunWith(SpringRunner.class)//
@SpringBootTest(classes = DemospringbootApplication.class)
@WebAppConfiguration
public class BaseControllerTest {
@Autowired
private WebApplicationContext context;
private MockMvc mockMvc;
@Before
public void setUp() throws Exception {
this.mockMvc = MockMvcBuilders.webAppContextSetup(context).build();
}
@Test
public void getMap() throws Exception {
MvcResult result = mockMvc.perform(MockMvcRequestBuilders.get("/test/get").contentType(MediaType.APPLICATION_JSON_UTF8))
.andExpect(MockMvcResultMatchers.status().isOk())
.andReturn();
int statusCode = result.getResponse().getStatus();
Assert.assertEquals(statusCode, 200);
}
}
运行即可
转载于:https://my.oschina.net/yejw/blog/1553517
分享到:
相关推荐
基于Springboot+Junit+Mockito做单元测试的示例 本文将从多个角度详细介绍如何使用Springboot、Junit和Mockito进行单元测试,并以实例代码演示。以下是本文的知识点总结: 一、单元测试的重要性 单元测试是软件...
5. `@MockBean`和`@SpyBean`:这些注解可以用来模拟或监视特定的bean,方便测试。 三、Struts框架的单元测试 1. Struts2的测试挑战:由于Struts2处理请求的方式,直接进行单元测试可能会比较复杂,通常需要模拟...
Spring Boot项目通常使用JUnit 5,所以我们可以在测试类上使用`@RunWith(SpringRunner.class)`注解,同时使用`@SpringBootTest`注解来加载整个Spring应用上下文。然而,为了进行单元测试,我们可能只关心单个服务或...
而`@Autowired`和`@MockBean`可以帮助我们注入Bean进行单元测试。 总之,SpringBoot与MyBatis的结合使得Java Web开发更加便捷。通过合理的配置和设计,我们可以构建出高效、易于维护的应用系统。在实践中,还需要...
5. **Mock数据模拟**:在开发阶段,可以使用Mock Server模拟API数据,提高开发效率。 在本项目中,ant-design-vue-pro作为前端界面,负责展示用户界面,与后端进行数据交互,通过axios等库发起HTTP请求获取或提交...
这个项目提供了从需求分析、设计、编码到测试的完整流程示例,对于学习和掌握SpringBoot和Vue.js的综合运用非常有帮助。开发者可以通过这个项目深入了解前后端分离架构,提升自己的全栈开发能力。同时,对于团队协作...
8. **单元测试**:Spring Boot提供了丰富的测试支持,如`@SpringBootTest`注解用于启动整个Spring Boot应用,`@Autowired`注入依赖,`@MockBean`模拟协作对象,便于进行单元测试和集成测试。 9. **日志系统**:...
"基于Springboot+Vue校园二手书交易平台的设计与实现源码案例设计.zip"这个标题揭示了这是一个IT项目,主要涉及两个核心技术:Spring Boot和Vue.js。Spring Boot是Java领域的一个微服务框架,常用于快速开发企业级...
1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合...
9. **Mock数据**:在开发过程中,开发者可能使用了Mock数据工具模拟后端API,以便在后端接口未完成时进行前端功能的测试和开发。 10. **单元测试与集成测试**:为了保证代码质量,项目可能会包含单元测试和集成测试...
5. **整合SpringBoot**:SpringBoot提供了`@RunWith(SpringRunner.class)`和`@SpringBootTest`注解,使我们可以很容易地在Spring上下文中运行Mock对象的测试。这使得我们可以测试那些依赖于Spring容器管理的bean。 ...
以项目的形式管理API文档,可以进行API的编辑、测试、Mock等操作,同时还可以添加富文本、Markdown等格式的文档,可以邀请好友加入项目,可以对项目进行公开,也可以发现其它公开项目。 主要技术栈: SpringBoot+...
在Spring Boot应用中,开发人员经常需要对各个模块进行单元测试以确保代码的质量和功能的正确性。在大型项目中,通常会采用多模块结构来组织代码,这使得项目的可维护性和可扩展性更强。本篇文章将重点讲解如何在...
在上述测试类中,`@SpringBootTest`注解启动了一个嵌入式的Spring应用上下文,这样我们就可以在测试中注入并使用`UserService`。`@Autowired`注解用于注入要测试的服务实例。`@Test`注解标记测试方法,`...
这时可以使用Spring Boot的`@SpringBootTest`注解来启动整个应用上下文,然后进行更全面的测试。 总结来说,Spring Boot多模块项目中Service层的单元测试是一个系统的过程,涉及到测试环境搭建、测试类编写、模拟...
- Mockito:用于创建和管理mock对象,隔离依赖,只测试目标对象。 - Hamcrest:提供丰富的匹配器,使断言表达更清晰。 - AssertJ:提供更丰富的断言库,增强测试的可读性。 - TestNG:另一种测试框架,提供更...
SpringBoot2种单元测试方法解析 在本文中,我们将详细介绍两种常用的 SpringBoot 单元测试方法,并通过示例代码对其进行了详细的介绍。 普通测试类 在 SpringBoot 中,我们可以使用 JUnit 框架来编写单元测试。...
SpringBoot 集成测试中的 Redis 在 SpringBoot 项目中,集成测试是一个非常重要的步骤,它可以确保我们的应用程序在不同的场景下都能正常工作。在这个过程中,Redis 是一个非常重要的组件,因为它可以作为缓存层、...
此外,Spring Boot测试支持`@MockBean`和`@SpyBean`注解,可以用来模拟或监控bean的行为,这对于测试时避免不必要的数据库操作或外部服务调用非常有用。 最后,`spring-boot-test`模块包含了Spring Boot测试所需的...
此外,Spring Boot还提供了`@MockBean`和`@SpyBean`注解,用于在测试环境中替换或监控真实bean的行为,以便于隔离测试。同时,`@DataJpaTest`和`@WebMvcTest`等更具体的测试注解可以帮助我们专注于特定的Spring模块...