spring boot 测试用例
junit 是一个面向于研发人员使用的轻量的测试模块,适合做单元测试。而testng百度后发现更强大,可以做功能测试,但对于我这种RD,貌似junit足沟了呢!
java Mock PowerMock、jmockit 模拟包非常优秀,我目前选型学会一个就不错了,不做评价,我学的powermock,据说jmockit更强大。但是powermock貌似继承了旧的easymock和jmock,所以用的人比较大(个人理解)。
对于junit测试的几个注解
@RunWith
@Before
@Test
@After
powerMock注解
@Mock
@InjectMocks
@RunWith 表示运行方式,@RunWith(JUnit4TestRunner)、@RunWith(SpringRunner.class),@RunWith(PowerMockRunner.class) 三种运行方式,分别在不同的场景中使用。
@Before是 @Test运行之前调用的方法,可以做初始化操作
@Test 是测试用例的单元
@After 执行完测试用例需要执行的清理工作
@Mock 有点类似Autowired注解,而@Mock注解是自动实现模拟对象,而并非Bean实例创建
@InjectMocks 实现对@Mock注解的对象注入到当前对象中,通过MockitoAnnotations.initMocks(this);实现
- package aa;
- import org.junit.Before;
- import org.junit.Test;
- import org.junit.runner.RunWith;
- import org.mockito.InjectMocks;
- import org.mockito.Mock;
- import org.mockito.MockitoAnnotations;
- import org.powermock.api.mockito.PowerMockito;
- import org.powermock.modules.junit4.PowerMockRunner;
- import org.powermock.modules.junit4.PowerMockRunnerDelegate;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.boot.test.context.SpringBootTest;
- import org.springframework.test.context.junit4.SpringRunner;
- import org.springframework.test.web.servlet.MockMvc;
- import org.springframework.test.web.servlet.MvcResult;
- import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
- import org.springframework.test.web.servlet.setup.MockMvcBuilders;
- import org.springframework.web.context.WebApplicationContext;
- import static org.mockito.Matchers.any;
- import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
- @RunWith(PowerMockRunner.class)
- @SpringBootTest(classes = MainApplication.class)
- @PowerMockRunnerDelegate(SpringRunner.class)
- @PowerMockIgnore("javax.management.*")
- public class moreTest {
- @Mock
- TService tService;
- @InjectMocks
- TController controller;
- @Autowired
- private WebApplicationContext ctx;
- private MockMvc mvc;
- @Before
- public void before() throws Exception {
- MockitoAnnotations.initMocks(this);
- //如果简单mock一个请求可以使用这个,但是要模拟注入,还是按下面的方式实现controller比较好
- // mvc = MockMvcBuilders.webAppContextSetup(ctx).build();
- mvc = MockMvcBuilders.standaloneSetup(controller).build();
- // taskPackageService=PowerMockito.mock(TService);
- PowerMockito.when(tService.queryMethod(any(ParameClass.class)))
- .thenReturn(88);
- PowerMockito.whenNew(TService.class).withNoArguments().thenReturn(tService);
- }
- @Test
- public void searchTest() throws Exception {
- mvc.perform(MockMvcRequestBuilders.get("/welcome").header("User-Agent", "xx")
- .param("page", "1")
- ).andExpect(status().isOk()).andDo((MvcResult result) -> {
- System.out.println(result.getResponse().getContentAsString());
- });
- }
- }
spring boot 测试用例的更多相关文章
- Spring Boot 知识图谱
最近有意重新学习下SpringBoot知识,特地总结了SpringBoot的知识点,对于想要学习的人来说,够用. SpringBoot学习路径 第一部分:了解 Spring Boot Spring B ...
- Spring Boot的一个测试用例
package tk.mybatis.springboot.mapper; import org.junit.Assert; import org.junit.Test; import org.jun ...
- Spring Boot中的事务管理
原文 http://blog.didispace.com/springboottransactional/ 什么是事务? 我们在开发企业应用时,对于业务人员的一个操作实际是对数据读写的多步操作的结合 ...
- Spring Boot 乐观锁加锁失败 - 使用AOP恢复错误
之前写了一些辅助工作相关的Spring Boot怎么使用AOP.这里继续正题,怎么减少Spring Boot 乐观锁加锁报错的情况(基本可以解决). 1. 包依赖 spring-boot-starte ...
- Spring Boot文档阅读
原因之初 最初习惯百度各种博客教程,然后跟着操作,因为觉得跟着别人走过的路走可以少走很多弯路,省时间.然而,很多博客的内容并不够完整,甚至错误,看多了的博客甚至有千篇一律的感觉.此外,博客毕竟是记载博 ...
- 用Gradle构建Spring Boot项目
相比起Maven的XML配置方式,Gradle提供了一套简明的DSL用于构建Java项目,使我们就像编写程序一样编写项目构建脚本.本文将从无到有创建一个用Gradle构建的Spring Boot项目, ...
- Spring Boot 学习笔记
参考资料 http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/ Spring Boot简介 Spring Boot使 ...
- springboot(十一):Spring boot中mongodb的使用
mongodb是最早热门非关系数据库的之一,使用也比较普遍,一般会用做离线数据分析来使用,放到内网的居多.由于很多公司使用了云服务,服务器默认都开放了外网地址,导致前一阵子大批 MongoDB 因配置 ...
- Spring Boot快速入门(三):依赖注入
原文地址:https://lierabbit.cn/articles/6 spring boot使用依赖注入的方式很简单,只需要给添加相应的注解即可 @Service用于标注业务层组件 @Contro ...
随机推荐
- STL Map和multimap 容器
STL Map和multimap 容器 map/multimap的简介 map是标准的关联式容器,一个map是一个键值对序列,即(key,value)对.它提供 基于key的快速检索能力. ...
- Nginx 线上配置实例
1 /etc/nginx/nginx.conf,在主配置下设置 /etc/nginx/conf.d/*.conf user nginx;worker_processes 1; error_log /v ...
- Active Directory PowerShell模块收集AD信息
0x00 前言简介 Microsoft为Windows Server 2008 R2(以及更高版本)提供了多个Active Directory PowerShell cmdlet,这大大简化了以前需要 ...
- 搭建ELK收集Nginx日志
众所周知,ELK是日志收集套装,这里就不多做介绍了. 画了一个粗略的架构图,如下: 这里实际用了三个节点,系统版本为CentOS6.6,ES版本为2.3.5,logstash版本为2.4.0,kiba ...
- (转)maven镜像详解
背景:一直以来,对maven镜像不是特别的了解,这里通过对网上资料的收集,做个详细的记录. 镜像介绍 如果仓库X可以提供仓库Y存储的所有内容,那么就可以认为X是Y的一个镜像.换句话说,任何一个可以从仓 ...
- windows service(system权限)创建用户权限进程
windows编程的人都知道,在其操作系统下,进程被创建,通常被赋予很多属性,其中一项属性就是用户名,及进程所属的权限.打开任务管理器,可查看到. 通常桌面系统explorer的权限是User权限,即 ...
- 《剑指offer》— JavaScript(16)合并两个排序的链表
合并两个排序的链表 题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则. *** 思路 如果pHead1和pHead2中有一个为空,则result是另 ...
- golang interface 类型变量当作某个具体类型使用
比如,我们定义了一个 struct type person struct { Name string `json:"name"` Age int `json:"age&q ...
- 解决Maven提示:Could not read settings.xml
在Eclipse中配置maven时,提示错误:Could not read settings.xml.用户配置无法生效. 1.首先检查自己的settings.xml配置文件,发现在<!----& ...
- python3.5中import sqlite3报错:ImportError: No module named _sqlite3
原因:缺少相关库 解决方案: 1 安装相关库 yum install sqlite-devel 2 重新编译安装Python