对于具有 @RequestParam
注解的控制器方法进行单元测试,可以使用 Spring Boot 提供的测试框架和 Mockito 来模拟请求参数和验证响应。以下是一个完整的示例,展示了如何进行单元测试。
假设我们有一个简单的控制器方法:
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class ExampleController {
@GetMapping("/example")
public String exampleMethod(@RequestParam String param) {
return "Received parameter: " + param;
}
}
我们可以使用 MockMvc
来模拟 HTTP 请求并验证响应。以下是单元测试的示例代码:
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
import org.springframework.test.web.servlet.MockMvc;
@WebMvcTest(ExampleController.class)
public class ExampleControllerTest {
@Autowired
private MockMvc mockMvc;
@Test
public void testExampleMethod() throws Exception {
mockMvc.perform(get("/example")
.param("param", "testValue"))
.andExpect(status().isOk())
.andExpect(content().string("Received parameter: testValue"));
}
}
param
,值为 testValue
。通过这种方式,你可以有效地对具有 @RequestParam
注解的控制器方法进行单元测试。
领取专属 10元无门槛券
手把手带您无忧上云