MockMvc

简介: MockMvc

反驳和奉承,两者都会造成不愉快的交谈——歌德

有时候我们想针对springcontroller进行单元测试,可以使用MockMvc来进行

文档地址:https://docs.spring.io/spring-framework/docs/current/reference/html/testing.html#spring-mvc-test-server

如果是springboot,文档:https://docs.spring.io/spring-boot/docs/current/reference/html/features.html#features.testing.spring-boot-applications

这里提到需要加上@AutoConfigureMockMvc注解

这个文档里提到要使用MockMvc,先静态导入这四个类

然后按照这里的例子,依葫芦画瓢写一个,但是不一样的是,我这里返回的数据是json,因此按照这里的文档稍加修改

最终结果:

package com.ruben.simpleboot
import org.junit.jupiter.api.Test
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc
import org.springframework.boot.test.context.SpringBootTest
import org.springframework.http.MediaType
import org.springframework.test.web.servlet.MockMvc
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get
import org.springframework.test.web.servlet.result.MockMvcResultMatchers.*
@SpringBootTest
@AutoConfigureMockMvc
class UserControllerTest {
    @Test
    fun testPage(@Autowired mockMvc: MockMvc) {
        mockMvc.perform(get("/user/page"))
            .andExpect(status().isOk)
            .andExpect(content().contentType(MediaType.APPLICATION_JSON))
            .andExpect(jsonPath("$.records").isArray)
            .andExpect(jsonPath("$.records[0].id").value(1L))
    }
}


忘说了我这里是kotlin,不过java的话都一样的哈哈

相关文章
|
6月前
|
存储 Java 测试技术
《Spring 测试指南》:JPA、MockMvc 和 @SpringBootTest 详解
Spring 提供了一组测试工具,可以轻松地测试 Spring 应用程序的各个组件,包括控制器、服务、存储库和其他组件。它具有丰富的测试注释、实用程序类和其他功能,以帮助进行单元测试、集成测试等。
107 0
|
6月前
|
Java Spring
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
`@RequiredArgsConstructor(onConstructor = @__(@Autowired))` 是一个注解,通常用于在类中生成一个包含所有`final`和`@NonNull`注解的字段的构造函数,并且对这些字段进行自动注入(使用Spring框架的`@Autowired`注解)。让我们详细解释一下: 1. **`@RequiredArgsConstructor` 注解:** - **作用:** Lombok 提供的注解,用于自动生成类的构造函数。 - **生成的构造函数:** 生成一个包含所有`final`字段的构造函数,同时也包括被`@NonNull`注解
662 1
|
5月前
|
Java
@RequiredArgsConstructor(onConstructor_ = @Autowired)报错
@RequiredArgsConstructor(onConstructor_ = @Autowired)报错
|
6月前
|
Java
Springboot 之 HandlerMethodArgumentResolver 运用
Springboot 之 HandlerMethodArgumentResolver 运用
76 0
|
6月前
|
Java Spring
spring注解@Autowired、@Resource说明
spring注解@Autowired、@Resource说明
|
Java Spring 容器
@PostConstruct使用
@PostConstruct使用
61 0
|
Java Spring
SpringBoot 中- HandlerInterceptor 中 @Autowired 和 @Resource 为空
SpringBoot 中- HandlerInterceptor 中 @Autowired 和 @Resource 为空
113 0
|
Java Spring
@GetMapping注解
@GetMapping注解
SpringAOP导致@Autowired依赖注入失败
SpringAOP导致@Autowired依赖注入失败
198 1
|
开发框架 Java Spring
spring注解:@Autowired 和@Resource
spring注解:@Autowired 和@Resource
308 0