【测试】【spring】MockMvc

关键字: MockMvc,@AutoConfigureMockMvc@SpringBootTest,@RunWith,@MockBean


1.简介

根本不启动服务器,而是只测试下面的层,在那里Spring处理传入的HTTP请求并将其传递给控制器。这样,几乎使用了整个堆栈,并且调用代码的方式与处理真正的HTTP请求的方式完全相同,但不需要启动服务器。

等价意义

@AutoConfigureMockMvc注解,自动注入MockMvc,自动注入Service。

使用MockMvc发起请求,然后执行相应的代码,在执行的过程中使用Mockito的mock模拟底层数据的返回,最后结果验证。

常用于对Controller进行单元测试。

2.详细说明

2.1.pom依赖

<dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-test</artifactId>
     <version>2.1.5.RELEASE</version>
     <scope>test</scope>
</dependency>

2.2.样例

@RunWith(SpringRunner.class)
@SpringBootTest(classes = JpaApplication.class)
@AutoConfigureMockMvc
public class StudentMasterControllerTest {

  @Autowired
  private MockMvc mvc;
 
  @Test
  public void getStudentMaster() throws Exception {
        mvc.perform(get("/studentMaster/getStudentMaster")
        .accept(MediaType.APPLICATION_JSON)
        .param("studentId", "201903_000006")
        .contentType(MediaType.APPLICATION_JSON_UTF8_VALUE))
        .andExpect(status().isOk())
        .andDo(print())
        .andReturn();
  }
}

3.相关知识

@SpringBootTest是SpringBoot的一个用于测试的注解,通过SpringApplication在测试中创建ApplicationContext。

@RunWith(SpringRunner.class),就是指用SpringRunner来运行,SpringRunner是SpringJunit4ClassRunner的别名。

@MockBean模拟相应对象,使用mock对象代替原来spring的bean,然后模拟底层数据的返回,而不是调用原本真正的实现。

SpringBoot 中, @MockBean 会将mock的bean替换掉 SpringBoot 管理的原生bean,从而达到mock的效果。

mock:在软件开发的世界之外, "mock"一词是指模仿或者效仿. 因此可以将“mock”理解为一个替身,替代者. 在软件开发中提及"mock",通常理解为模拟对象或者Fake

4.参考

【主要】https://spring.io/guides/gs/testing-web/

【可选】https://site.mockito.org/

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

琴 韵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值