我是靠谱客的博主 傻傻绿茶,最近开发中收集的这篇文章主要介绍mockito 外部接口_使用Mockito编码完成接口测试,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Junit

Java自己的单元测试框架

在开始书写测试代码之前,我们先回顾一下JUnit常用的测试注解。在junit4和junit5中,注解的写法有些许变化。

junit4

junit5

特点

@Test

@Test

声明一个测试方法

@BeforeClass

@BeforeAll

在当前类的所有测试方法之前执行。注解在【静态方法】上

@AfterClass

@AfterAll

在当前类中的所有测试方法之后执行。注解在【静态方法】上

@Before

@BeforeEach

在每个测试方法之前执行。注解在【非静态方法】上

@After

@AfterEach

在每个测试方法之后执行。注解在【非静态方法】

@RunWith(SpringRunner.class)

@ExtendWith(SpringExtension.class)

类class定义上

使用Mockito编码完成接口测试

Mockito是一个测试框架

Mockito是GitHub上使用最广泛的Mock框架,并与JUnit结合使用.Mockito框架可以创建和配置mock对象.使用Mockito简化了具有外部依赖的类的测试开发。Mockito测试框架可以帮助我们模拟HTTP请求,从而达到在服务端测试目的。因为其不会真的去发送HTTP请求,而是模拟HTTP请求内容,从而节省了HTTP请求的网络传输,测试速度更快。

简而言之:模拟HTTP请求做测试的框架,节省了HTTP请求的网络传输,速度快。

1、 依赖

spring-boot-starter-test(Spring Boot 2.3.0.RELEASE)自动包含Junit 5 和Mockito框架,以下测试代码是基于Junit5,使用Junit4的同学请自行调整代码。

org.springframework.boot

spring-boot-starter-test

test

org.junit.vintage

junit-vintage-engine

2、 测试

/**

* 编码实现接口测试

*/

@Slf4j

public class ArticleMockitoHandlerTest {

// 1. 引入模拟http请求的mockMvc对象

private static MockMvc mockMvc;

// 初始化mockMvc对象,在所有测试方法的前面进行初始化

@BeforeAll

static void setMockMvc() {

// 2. 对哪个Handler进行测试的初始化mockMvc对象

mockMvc = MockMvcBuilders.standaloneSetup(new ArticleMockitoTestHandler()).build();

}

// 3. 写测试方法

@Test

public void saveArticle() throws Exception {

// 要发送的数据e

String article = "{n" +

" "id": 1,n" +

" "auther": "zhouzhou",n" +

" "title": "T",n" +

" "content": "Mockito编码测试",n" +

" "createTime": "2020-11-06 01:35:12",n" +

" "reader":[{"name":"源","age":18},{"name":"琼","age":17}]n" +

"}";

// 4. perform执行模拟请求

MvcResult result = mockMvc.perform(

MockMvcRequestBuilders

.request(HttpMethod.POST, "/rest/articles")

.contentType("application/json")

.content(article)

)

// 期望返回的内容

.andExpect(MockMvcResultMatchers.status().isOk()) //HTTP:status 200

.andExpect(MockMvcResultMatchers.jsonPath("$.data.auther").value("zhouzhou"))

.andExpect(MockMvcResultMatchers.jsonPath("$.data.reader[0].age").value(18))

.andDo(print())

.andReturn();

// 处理乱码

result.getResponse().setCharacterEncoding("UTF-8");

log.info(result.getResponse().getContentAsString());

}

}

最后

以上就是傻傻绿茶为你收集整理的mockito 外部接口_使用Mockito编码完成接口测试的全部内容,希望文章能够帮你解决mockito 外部接口_使用Mockito编码完成接口测试所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部