springBoot使用单元测试controller接口

本文展示了如何在SpringBoot应用中进行单元测试,通过MockMvc模拟HTTP请求,测试HelloController的/hello接口,确保其返回'HelloSpringCloud'。测试代码包括设置MockMvc实例,执行GET请求并验证响应内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在Spring Boot中实现单元测试同样非常方便,下面我们打开src/test/下的测试入口com.cloud.demo.DemoApplicationTests类,编写一个简单的单元测试来模拟HTTP请求,测试之前实现的/hello接口,该接口应返回Hello world字符串。
在这里插入图片描述

具体代码实现如下所示。

@SpringBootTest
class DemoApplicationTests {
    private MockMvc mvc;

    @Before
    public void setUp() throws Exception {
        mvc = MockMvcBuilders.standaloneSetup(new HelloController()).build();
        System.out.println("初始化mock模块");
    }

    @Test
    void hello() throws Exception {
        setUp();
        String responseString = mvc.perform(MockMvcRequestBuilders.get("/hello").accept(MediaType.APPLICATION_JSON)).andExpect(status().isOk())    //返回的状态是200
                .andDo(print())         //打印出请求和相应的内容
                .andReturn().getResponse().getContentAsString();   //将相应的数据转换为字符串;
        System.out.println("获取结果为:" + responseString);

    }
}

controller接口内容如下:

@RestController
public class HelloController {
    @RequestMapping(value = "/hello",method = RequestMethod.GET)
    public String inde(){
        return "Hello SpringCloud";
    }
}

测试结果如下:
在这里插入图片描述

在Spring Boot中,可以使用JUnit和MockMvc来进行Controller单元测试。下面是一个示例: ```java import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; 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.context.junit4.SpringRunner; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; import org.springframework.test.web.servlet.result.MockMvcResultMatchers; @RunWith(SpringRunner.class) @SpringBootTest @AutoConfigureMockMvc public class MyControllerTest { @Autowired private MockMvc mockMvc; @Before public void setup() { // 在每个测试方法执行前的初始化操作 } @Test public void testController() throws Exception { mockMvc.perform(MockMvcRequestBuilders.get("/api/mycontroller") .contentType(MediaType.APPLICATION_JSON)) .andExpect(MockMvcResultMatchers.status().isOk()) .andExpect(MockMvcResultMatchers.jsonPath("$.name").value("John")) .andExpect(MockMvcResultMatchers.jsonPath("$.age").value(25)); } } ``` 上述代码中,我们使用了`@RunWith(SpringRunner.class)`注解来指定使用SpringRunner运行测试。`@SpringBootTest`注解用于加载Spring Boot应用程序上下文。`@AutoConfigureMockMvc`注解用于自动配置MockMvc实例。 在`testController`方法中,我们使用`MockMvc`执行了一个GET请求,并验证了返回的状态码和JSON响应的内容。 需要注意的是,上述示例中的路径`/api/mycontroller`和JSON响应的内容`name`和`age`是根据具体的Controller和返回值来设置的,你需要根据你的实际情况进行修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

ZNineSun

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

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

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

打赏作者

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

抵扣说明:

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

余额充值