概述
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编码完成接口测试所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复