gpt4 book ai didi

spring - 如何模拟 POST 参数和模型属性?

转载 作者:行者123 更新时间:2023-11-28 20:40:42 24 4
gpt4 key购买 nike

我正在使用 Spring MVC 框架,我想用 JUnit 测试我的 Controller 。我应该如何模拟 Controller 的 POST 或 GET 参数以及如何访问模型的属性以检查其内容?我的 Controller 的签名如下:

@RequestMapping(value="/findings", method=RequestMethod.POST)
public String findUsers(@RequestParam("userInput") String userInput, Model m)

最佳答案

您可以使用 spring-testmockito 以及 junit 来完成任务。

spring-test 使您能够在 spring 中测试 Controller 和一大堆其他东西

mockito 是一个用于创建模拟类的很棒的库

这是对 Controller 单元测试的非常高层次的概述。这可能不适合您的情况,但应该能为您提供一些起点。

public class SomeControllerTest {
private SomeController controller;

@Mock
private View view;

private MockMvc mockMvc;

@Before
public void setup(){
MockitoAnnotations.initMocks(this);

mockMvc = MockMvcBuilders
.standaloneSetup(controller)
.setSingleView(view)
.build();
}

@Test
public void test() throws Exception {
ObjectMapper mapper = new ObjectMapper();

Model m = new Model();

MvcResult mvcResult = mockMvc.perform(post("/findings")
.contentType(MediaType.APPLICATION_JSON)
.content(objectMapper.writeValueAsString(m)))
.andExpect(status().isOK())
.andReturn();
}
}

关于spring - 如何模拟 POST 参数和模型属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34134763/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com