单元测试——Mock RestTemplate
service代码如下:
public class TestServiceImpl implements ITestService {
@Autowired
RestTemplate restTemplate;
@Override
public String getUserName(String sid) {
String userName = "";
//拼接url
String url = "XXX";
JSONObject result = restTemplate.getForObject(url, JSONObject.class);
log.info("调用平台接口:{} ,返回参数为:{}", url, result.toJSONString());
//获取接口返回信息
if ("0000".equals(result.getString("code"))) {
if (result.getJSONObject("data") != null) {
user = result.getJSONObject("data").getString("user");
}
} else {
log.error("调用平台接口返回错误");
}
return userName;
}
}
下面,我们编写单元测试,代码如下:
@RunWith(SpringRunner.class)
@SpringBootTest(classes = SpringBootMain.class)
public class TestServiceImplTest extends BaseTest {
@Mock
private RestTemplate restTemplate;
@InjectMocks
TestServiceImpl testService;
/**
* 注入一个web应用环境(容器)
*/
@Resource
WebApplicationContext webApplicationContext;
// mvc 环境对象
public MockMvc mockMvc;
@Before
public void init()throws Exception {
mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).build();
}
@Test
public void testGetUserName() {
String res = "{\"code\":\"0000\",\"data\":{\"name\":\"test\"},\"message\":\"成功\"}";
Mockito.when(restTemplate.getForObject(Mockito.anyString(), Mockito.any())).thenReturn(JSONObject.parseObject(res));
testService.getUserName("test");
}

单元测试——Mock RestTemplate的更多相关文章
- 教育单元测试mock框架优化之路(下)
转载:https://sq.163yun.com/blog/article/169563599967031296 四.循环依赖的解决 果然! 当我将@SpyBean应用到存在有循环依赖的Bean上时, ...
- 教育单元测试mock框架优化之路(上)
转载:https://sq.163yun.com/blog/article/169561874192850944 众所周知,mock对于单元测试,尤其是基于spring容器的单元测试,是非常重要的.它 ...
- 单元测试mock框架——jmockit实战
JMockit是google code上面的一个java单元测试mock项目,她很方便地让你对单元测试中的final类,静态方法,构造方法进行mock,功能强大.项目地址在:http://jmocki ...
- 单元测试 mock EF 中DbContext 和DbSet Include
现在EF越来越流行了,很多时候业务成都是直接访问DbContext 和DbSet来操作数据的. 那么我们测试的时候如何来mock这2个对象了?现在时间很晚了, 就直接贴code吧 首先看看的我们DbC ...
- Mvc controller单元测试 Mock Url对象
被测试Action 包含有Url对象的代码: data = new data { title = ds.Name, icon = "folder", attr = new { id ...
- 单元测试mock当前时间
在实际项目中很多地方用到DateTime.Now,这个时间是时时变化的.如果要进行单元测试对比预期结果时,这个时间无法预测,可以添加如下两个时间类 namespace Common.Helper { ...
- 教育单元测试mock框架优化之路(中)
转载:https://sq.163yun.com/blog/article/169564470918451200 三.间接依赖的bean的mock替换 对于前面提供的@Mock,@Spy+@Injec ...
- 基于spring与mockito单元测试Mock对象注入
转载:http://www.blogjava.net/qileilove/archive/2014/03/07/410713.html 1.关键词 单元测试.spring.mockito 2.概述 单 ...
- 单元测试mock之mockito使用
先来一个简单的例子来感受一下 外部接口类:TestService.java package com.yzl.mock; /** * 测试用服务 * * @author yangzhilong */ p ...
- Object-C单元测试&MOCK(摘录精选)
断言测试类型: 下面一共18个断言(SDK中也是18个,其含义转自ios UnitTest 学习笔记,真心佩服原文的博主): XCTFail(format…) 生成一个失败的测试: XCTAssert ...
随机推荐
- IO流:原理、流的分类、体系结构
Java IO原理 I/O是Input/Output的缩写, I/O技术是非常实用的技术,用于处理设备之间的数据传输.如读/写文件,网络通讯等. Java程序中,对于数据的输入/输出操作以 &q ...
- AI编程:如何编写提示词
这是小卷对AI编程工具学习的第2篇文章,今天讲讲如何编写AI编程的提示词,并结合实际功能需求案例来进行开发 1.编写提示词的技巧 好的提示词应该是:目标清晰明确,具有针对性,能引导模型理解问题 下面是 ...
- docker搭建rabbitmq镜像集群
Rabbitmq普通集群模式,是将交换机.绑定.队列的元数据复制到集群里的任何一个节点,但队列内容只存在于特定的节点中,客户端通过连接集群中任意一个节点,即可以生产和消费集群中的任何队列内容(因为每个 ...
- @所有Mac用户 刺客信条系列登陆Mac平台!
[历史性的跨越] 在无数Mac游戏爱好者的热切期盼中,终于将风靡全球的3A级巨作--刺客信条系列,成功移植至MacOS系统!这意味着,无论是穿梭于中世纪欧洲的隐秘巷弄,还是翱翔于维多利亚时代的伦敦天际 ...
- 关于DateTime的自定义转换
关于DateTime的自定义转换.把字符串时间转换成可以供DateTime类型识别的字符串类型的粗略实现. /// <summary> /// 把从数据库中读取的字符串的CurrentTi ...
- warning C291: not every exit path returns a value 在switch分支中使用return
switch(data) { case 1: ...
- vue - [03] Hello World~
题记部分 (1)选择一个合适的目录,然后进入终端,执行:vue create account-manager (2)切换目录到account-manager,执行npm run serve启动开发服务 ...
- Linux - lvm逻辑卷的操作
执行 lsblk如下所示: [root@idc-poc-60 ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sr0 11:0 1 3.7G 0 r ...
- mysql扫描全表更新状态部分失败
1. mysql排序问题 一直以为mysql是按照主键排序的,实则排序和主键没有关系(不使用 order by 子句). 然后从 stackoverflow 上查了一下,找到了以下的回答: 没有默认的 ...
- Polar困难模式部分题解
choose from pwn import *from LibcSearcher import *context.terminal = ["tmux","splitw& ...