单元测试——Mock RestTemplate

super_龙·2021-04-09 16:29·1257 次阅读

单元测试——Mock RestTemplate

service代码如下:

Copy
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; } }

下面,我们编写单元测试,代码如下:

Copy
@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"); }

image

posted @ 2021-04-09 16:29  super_龙  阅读(1257)  评论(0)    收藏  举报
编辑推荐:
· 还在手写JSON调教大模型?.NET 9有新玩法
· 复杂业务系统线上问题排查过程
· 通过抓包,深入揭秘MCP协议底层通信
· 记一次.NET MAUI项目中绑定Android库实现硬件控制的开发经历
· 糊涂啊!这个需求居然没想到用时间轮来解决
阅读排行:
· Coze Studio:字节跳动 Coze 的开源版本来了!第一时间深度解析
· 复杂业务系统线上问题排查过程
· 在SqlSugar的开发框架的Vue3+ElementPlus前端中增加对报表模块的封装处理,实现常
· 一款超级经典复古的 Windows 9x 主题风格 Avalonia UI 控件库,满满的回忆杀!
· 我给 AI 接上了一个 C# 运行器,结果它学会了自己上网、调试代码
点击右上角即可分享
微信分享提示